Node.js中path.join()优势例举分析
脚本之家 / 编程助手:解决程序员“几乎”所有问题!
脚本之家官方知识库 → 点击立即使用
您可能想知道为什么要使用 path.join() 方法而不是字符串拼接。
1 2 3 | '/path' + '/' + 'to' + '/' + 'test.txt' // '/path/to/test.txt' [ '/path' , 'to' , 'test.txt' ].join( '/' ) // '/path/to/test.txt' |
1、对于Windows支持。Windows 使用反斜杠(\)而不是正斜杠(/)作为路径分隔符。
path.join() 会为我们处理此问题。因为 path.join('data', 'test.txt') 在 Linux 和 OSX 以及 Windows 上都会返回 'data/test.txt'。
2、用于处理边缘情况。使用文件系统路径时,会弹出许多边缘情况。
例如,如果您尝试手动连接两个路径,您可能会意外地得到重复的路径分隔符。path.join() 方法为我们处理开头和结尾的斜杠。
1 2 3 4 | path.join( 'data' , 'test.txt' ) // 'data/test.txt' path.join( 'data' , '/test.txt' ) // 'data/test.txt' path.join( 'data/' , 'test.txt' ) // 'data/test.txt' path.join( 'data/' , '/test.txt' ) // 'data/test.txt' |
知识点扩展:
一、path.join()方法
path.join()方法是将多个参数字符串合并成一个路径字符串
console.log(path.join(__dirname,‘a',‘b')); 假如当前文件的路径是E:/node/1,那么拼接出来就是E:/node/1/a/b。
console.log(path.join(__dirname,'/a','/b','…')); 路径开头的/不会影响拼接,…代表上一级文件,拼接出来的结果是:E:/node/1/a
console.log(path.join(__dirname,‘a',{},‘b')); 而且path.join()还会帮我们做路径字符串的校验,当字符串不合法时,会抛出错误:Path must be a string.
二、path.resolve()方法
path.resolve()方法是以程序为根目录,作为起点,根据参数解析出一个绝对路径
以应用程序为根目录
普通字符串代表子目录
/代表绝对路径根目录
console.log(path.resolve()); 得到应用程序启动文件的目录(得到当前执行文件绝对路径) E:\zf\webpack\1\src
console.log(path.resolve(‘a','/c')); E:/c ,因为/斜杠代表根目录,所以得到的就是E:/c
所以我们一般拼接的时候需要小心点使用/斜杠
console.log(path.resolve(__dirname,‘img/so')); E:\zf\webpack\1\src\img\so 这个就是将文件路径拼接,并不管这个路径是否真实存在。
console.log(path.resolve(‘wwwroot', ‘static_files/png/', ‘…/gif/image.gif')) E:\zf\webpack\1\src\wwwroot\static_files\gif\image.gif
这个是用当前应用程序启动文件绝对路径与后面的所有字符串拼接,因为最开始的字符串不是以/开头的。
…也是代表上一级目录。
到此这篇关于Node.js中path.join()优势例举分析的文章就介绍到这了,更多相关Node.js中path.join()的优势内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
最新评论