const absolutePath = path.join(__dirname, some, dir);
与
const absolutePath = path.resolve(__dirname, some, dir);
path.join将串联在一起__dirname,这是当前文件的目录名,其值与some和dir特定于平台的分隔符。
在哪里
path.resolve将处理__dirname,some并dir即由右至左通过处理它前面加上它。
如果根路径的任何值some或dir对应于根路径,则将忽略先前的路径,并通过将其视为根来处理其余部分
为了更好地理解这个概念,让我对这两者进行更详细的解释,如下:
的path.join和path.resolve是两个不同的方法或通过提供的NodeJS路径模块的功能。
两者都接受路径列表,但是区别在于结果,即它们如何处理这些路径。
path.join使用平台特定的分隔符作为分隔符,将所有给定的路径段连接在一起,然后对结果路径进行归一化。在此path.resolve()过程中,路径顺序是从右到左,随后的每个路径都将优先放置,直到构造出绝对路径为止。
没有提供任何参数时
以下示例将帮助您清楚地理解这两个概念:
我的文件名是index.js,当前工作目录是E:\MyFolder\Pjtz\node
const path = require('path');
console.log("path.join() : ", path.join());
// outputs .
console.log("path.resolve() : ", path.resolve());
// outputs current directory or equalent to __dirname
结果
λ node index.js
path.join() : .
path.resolve() : E:\MyFolder\Pjtz\node
path.resolve()方法将输出绝对路径,作为path.join()return。如果未提供任何内容,则表示当前工作目录
当一些根路径作为参数传递时
const path=require('path');
console.log("path.join() : " ,path.join('abc','/bcd'));
console.log("path.resolve() : ",path.resolve('abc','/bcd'));
结果我
λ node index.js
path.join() : abc\bcd
path.resolve() : E:\bcd
path.join()仅将输入列表与特定于平台的分隔符连接在一起,同时path.resolve()处理从右到左的路径顺序,并在每个后续路径之前添加一条路径,直到构造出绝对路径为止。