node中,path.join和path.resolve的区别

1. path.join和path.resolve的区别

path.join

  1. 拼接路径
  2. 能够识别 \

path.resolve

  1. 从当前的执行路径,解析出绝对路径
  2. 不能识别 \ ,会被当成根路径

注意下面的例子,是从当前的执行路径,解析出绝对路径

使用 process.cwd() 可以获取当前的执行路径

const path = require('path');
// 拼接路径
console.log('拼接路径', path.join('a', 'b', '/c'));
// 解析出绝对路径
console.log('解析路径', path.resolve('a', 'b', 'c'))

使用path.resolve 如果待拼接字符串有 /,那么会解析出根路径

 

 2. 使用__dirname

按照上述例子使用path.resolve,会从执行路径开始解析,但是当我们的js文件不在根目录(也就是默认的执行路径)时,就会出错。我们希望从当前文件的路径开始解析。所以可以加上 __dirname

 同样的拼接路径的方法 path.join也可以使用__dirname 开始拼接,此时得到的结果和path.resolve一致(不考虑是否有斜杠 \ 的情况

 3. 切换当前的执行路径

在上面的例子中,直接点击 run code按钮,使用process.cwd() 获取的执行路径是根目录,而不是当前文件的路径,那么我们可以使用终端terminal 来切换(cd 命令)执行路径,只不过此时我们需要使用node命令来运行文件了。

 总结,在实际项目中建议使用

path.resolve(__dirname, 'a')

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值