Node.js join() 与 resolve() 的区别
2023-09-11 14:22:55 时间
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 路径下运行的
推荐一个在线编译工具
相关文章
- 纯JS文本比较工具
- js导出Excel弹出对话框
- [Node.js] Add node.js command line to global
- [Node.js] Availability and Zero-downtime Restarts
- [WASM] Run WebAssembly in Node.js using the node-loader
- Node.js 中运行定时任务
- WebView JS交互 JSBridge 案例 原理 MD
- [Node.js] Add node.js command line to global
- [Node.js] Mock an API for Local Development in React with Mirage JS
- [Node.js] Write or Append to a File in Node.js with fs.writeFile and fs.writeFileSync
- [Node.js] Testing ES6 Promises in Node.js using Mocha and Chai
- node.js常见的一些错误信息
- JS实现简单的运行代码 & 侧边广告
- 15 个常见的 Node.js 面试问题及答案
- SAP Spartacus 服务器端渲染模式下,在 Node.js 服务器端渲染视图的单步调试
- 如何为部署到 SAP BTP 平台上的 Node.js 应用提供Authorization 和 Trust 管理 - 权限管控
- Node.js:insert-sql帮助开发者生成SQL插入语句
- Node.js:axios自定义headers请求头
- 005-html+js+spring multipart文件上传
- js和jquery获取文档对象以及滚动条位置
- js常用的7种函数总结
- 2021前端面试题大全(html+css专题+js专题+vuejs专题+react专题+选择题+问答题+编程题+逻辑题)
- Node.js学习笔记——接口