Node.js join() 与 resolve() 的区别

path.join

使用平台特定的分隔符把给定的路径片段连接到一起。

  • 如果参数中的分隔符错误,会统一矫正。

path.resolve

把路径片段的序列解析为一个绝对路径(path.resolve 会把 ‘/’ 当成根目录)

  • 如果参数中的分隔符错误,会统一矫正。
  • 跟 path.join 一样连接路径,不同的是首个参数会被解析为绝对路径
  • 如果前面的参数以 ‘/’ 打头(分隔符按矫正后的算),会被当作根路径,否则使用当前路径作为起始
  • 如果后面的参数以 ‘/’ 打头(分隔符按矫正后的算),会忽略掉前面的参数,从新算起
  • 如果后一个参数以 ‘/’ 打头,等价于 ‘…/’ (即从上级目录开始拼接,这和之前一个参数是否以 ‘/’ 结尾无关)
  • 如果第一个参数不是以 ‘/’ 打头,那就是挂在当前目录下了

url.resolve

url.resolve 用来拼接 URL 路径

  • 后一个参数会替换掉前一个参数最后一个 ‘/’ 后面的内容
  • 如果后一个参数以 ‘/’ 打头,等价于 ‘…/’ (即从上级目录开始拼接,这和之前一个参数是否以 ‘/’ 结尾无关)

例子

const path = require('path')
console.log(path.join("/www/example/com", "workspace"))
console.log(path.join("/www/example/com/", "workspace"))
console.log(path.join("/www/example/com", "/workspace"))
console.log(path.join("/www/example/com/", "/workspace"))
console.log(path.join("/www/example/com\\", "\\workspace"))
console.log(path.join("/www/example/com/", "../workspace"))
console.log("====================")
console.log(path.resolve("/www/example/com", "workspace"))
console.log(path.resolve("/www/example/com/", "workspace"))
console.log(path.resolve("/www/example/com", "/workspace"))
console.log(path.resolve("/www/example/com/", "/workspace"))
console.log(path.resolve("/www/example/com\\", "\\workspace"))
console.log(path.resolve("/www/example/com", "../workspace"))
console.log(path.resolve("/www/example/com/", "../workspace"))
console.log("====================")
const url = require('url')
console.log(url.resolve("http://www.example.com/temp", "workspace"))
console.log(url.resolve("http://www.example.com/temp/", "workspace"))
console.log(url.resolve("http://www.example.com/temp", "/workspace"))
console.log(url.resolve("http://www.example.com/temp/", "/workspace"))
console.log(url.resolve("http://www.example.com/temp\\", "\\workspace"))
console.log(url.resolve("http://www.example.com/temp", "../workspace"))
console.log(url.resolve("http://www.example.com/temp/", "../workspace"))

windows 环境下的运行结果

\www\example\com\workspace
\www\example\com\workspace
\www\example\com\workspace
\www\example\com\workspace
\www\example\com\workspace
\www\example\workspace
====================
C:\www\example\com\workspace
C:\www\example\com\workspace
C:\workspace
C:\workspace
C:\workspace
C:\www\example\workspace
C:\www\example\workspace
====================
http://www.example.com/workspace
http://www.example.com/temp/workspace
http://www.example.com/workspace
http://www.example.com/workspace
http://www.example.com/workspace
http://www.example.com/workspace
http://www.example.com/workspace

注意:该命令是在 C:\Users\用户名 路径下运行的,如果第一个参数不是以 ‘/’ 打头,那就是挂在当前目录下了。

菜鸟教程在线编译工具(linux环境)下的运行结果

/www/example/com/workspace
/www/example/com/workspace
/www/example/com/workspace
/www/example/com/workspace
/www/example/com\/\workspace
/www/example/workspace
====================
/www/example/com/workspace
/www/example/com/workspace
/workspace
/workspace
/www/example/com\/\workspace
/www/example/workspace
/www/example/workspace
====================
http://www.example.com/workspace
http://www.example.com/temp/workspace
http://www.example.com/workspace
http://www.example.com/workspace
http://www.example.com/workspace
http://www.example.com/workspace
http://www.example.com/workspace


注意:该命令是在远程计算机的 /tmp/850964689 路径下运行的

推荐一个在线编译工具

https://c.runoob.com/compile

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值