node path.resolve和path.join用法和区别(路径拼接写法大全)

前端这点事 196 0

一、path模块的引入。

直接引用。node中自带的模块

const path = require('path');

二、path.join(path1,path2,path3.......)

  作用:将路径片段使用特定的分隔符(window:\)连接起来形成路径,并规范化生成的路径。若任意一个路径片段类型错误,会报错。


const path = require('path');
let myPath = path.join(__dirname,'/img/so');
let myPath2 = path.join(__dirname,'./img/so');
let myPath3 = path.join(__dirname,'../img/so');
let myPath4=path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
 
console.log("\n");  
console.log(__dirname);
console.log(myPath);    
console.log(myPath2);
console.log(myPath3);  
console.log(myPath4);

运行代码如下:

202111028464_1972.png

通过结果发现,join方法可以理解为单纯的“字符串”拼接,也就是说不管你是绝对路径和相对路径,在我这里都是按字符串去拼接,最后直接返回给你拼接以后的完整路径。

三、path.resolve([from...],to)

作用:把一个路径或路径片段的序列解析为一个绝对路径。相当于执行cd操作。

/被解析为根目录。

代码如下:


const path = require('path')
let myPath = path.resolve(__dirname,'/img/so');
let myPath2 = path.resolve(__dirname,'./img/so');
let myPath3 = path.resolve(__dirname,'../img/so');
let myPath4=path.resolve('/foo/bar', './baz');
let myPath5=path.resolve('/foo/bar', '/tmp/file/');
 
console.log('\n')
console.log(__dirname);           
console.log(myPath);    
console.log(myPath2);   
console.log(myPath3);  
console.log(myPath4);  
console.log(myPath5);

运行代码如下:

2.png

分析结果可以发现,resolve在遇到/根目录的时候,会从/往后开始拼接路径,遇到相对路径的时候,则是和join一样,直接拼接,如果想要实现join的效果,其实很简单,拼接的时候只使用相对路径就可以了。

标签: Node

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~