path.join的实际目的是什么?

时间:2018-12-17 06:46:43

标签: javascript node.js path

我正在使用此传递的代码

var newstring = srchStr3.replace(/&/g, "&");


var srchStr3 = job.getJobInfo("JobData").replace("&", "&");

我看了official docs,但是文档没有显示实际的例子。

从概念上讲,const DIST_DIR = path.join(__dirname, '/client-react/dist'); 似乎可以使平台之间的路径保持一致,但我不知道这实际上意味着什么。

有人可以提供一个实际的例子吗?

3 个答案:

答案 0 :(得分:3)

不同的OS使用不同的路径分隔符。例如,Windows使用反斜杠\来分隔目录,而基于Unix的系统(例如Linux,macOS)使用正斜杠/来实现相同的目的。

使用path.join,确保您的路径与运行它的操作系统的正确分隔符连接在一起。

相反,如果您使用了普通的字符串连接函数或运算符,那么路径分隔符将被硬编码,可以这么说,您的脚本/程序将在一个系统上运行而在另一个系统上失败。

在与平台无关的编程语言(如JS)中,将平台特定的功能外包给此类库很重要,以确保我们的脚本足够健壮以承受不同的操作系统。

答案 1 :(得分:1)

简单地将其视为平台的抽象。由于不同的平台使用不同的语法处理方式,因此,如果您希望代码与平台无关,请使用路径。

实际上,这将影响正斜杠或反斜杠用于其他路径。

请参见forward and backward slashes上的这篇SO帖子。

答案 2 :(得分:0)

如果在Windows上运行节点脚本,则文件夹分隔符为'\'。文件/目录路径如下'C:\home\user\Documents\a.doc'

在Linux和Mac上,它是'/'。完整的文件/目录路径如下所示:'/home/user/Documents/a.doc'

如果您试图在节点脚本中手动建立文件路径,并且希望该脚本在Windows和linux / mac上均能正常运行,则需要使用if条件来检查要使用哪个路径分隔符采用。 path.join会为您解决这个问题。