nodejs path.resolve与path.join如何使用

简介: nodejs path.resolve与path.join如何使用

目录


前言


之前觉得很简单没有记录,果不其然,忘了,还是浅记一下path.resolve与path.join如何使用,毕竟文件中各种乱七八糟的路径位置一直都容易让人混乱。


path.resolve


无参数时


path.resolve()可以得到当前工作路径,也就是编写path.resolve()代码的js文件所在位置。


CommonJS模块可以通过__dirname获得相同值,也是当前工作路径位置。


ES6模块不支持__dirname,因此ES6使用__dirname得先声明。

import path from 'path'
const __dirame = path.resolve()

有参数时


看成从当前路径开始执行cd操作,且跳转目录允许不存在。

假设我文件当前路径开始为C:\Users\user\Desktop。

在C:\Users\user\Desktop上执行cd /跳转绝对路径会回到c盘上,也就是根目录。

console.log(path.resolve('/'))// C:\

1

在C:\Users\user\Desktop上执行cd /会回到c盘C:\上,再执行cd /test又是绝对路径会到C:\test,最后执行cd /path还是绝对路径结果为C:\path,我们发现只要是绝对路径,前面的跳转就没什么意义了,path.resolve('/','/test','/path')等同于path.resolve('/path'),以后我们可以从最后一个绝对路径开始看,前面直接忽略。

console.log(path.resolve('/','/test','/path'))// C:\path

在C:\Users\user\Desktop上执行cd test会到C:\Users\user\Desktop\test,再执行cd path又会到C:\Users\user\Desktop\test\path,注意:即使test、path文件夹不存在,返回的仍然是这个。

console.log(path.resolve('test','path'))// C:\Users\user\Desktop\test\path

path.join


  1. path.join只是返回字符串路径的拼接,只会拼接出看起来规范合理的路径,因此结合两个字符串时,下面三种情况结果都一样。
console.log(path.join('/test','./path'))// \test\path
console.log(path.join('/test','/path'))// \test\path
console.log(path.join('/test','path'))// \test\path
  1. 个人认为path.join没有很合理容易揣摩的规则,多种情况结果一致容易产生误解,因此更建议使用path.resolve。
相关文章
|
3月前
|
前端开发 JavaScript
如何使用 await-to-js 库优雅的处理 async await 错误
如何使用 await-to-js 库优雅的处理 async await 错误
51 0
|
4月前
|
前端开发 JavaScript
ES6:Promise使用方法解析大全
ES6:Promise使用方法解析大全
|
4月前
|
API
es6读书笔记(六) async await
es6读书笔记(六) async await
|
4月前
|
JavaScript 前端开发 开发者
7个Js async/await高级用法
7个Js async/await高级用法
103 0
|
4月前
|
前端开发 JavaScript
JavaScript开发中ES6+新特性:简述async/await的用法。
JavaScript开发中ES6+新特性:简述async/await的用法。
47 0
|
9月前
|
前端开发
ES6学习(十)—async 函数
ES6学习(十)—async 函数
|
11月前
|
测试技术 Python
Python中Mock和Patch的区别
Python中Mock和Patch的区别
54 0
es6如何使用padStart()和padEnd()方法
es6如何使用padStart()和padEnd()方法
83 0
|
前端开发 API
Promise(简介、基本使用、API、手写实现 Promise、async与await)(四)
Promise(简介、基本使用、API、手写实现 Promise、async与await)(四)
|
前端开发 API
Promise(简介、基本使用、API、手写实现 Promise、async与await)(五)
Promise(简介、基本使用、API、手写实现 Promise、async与await)(五)