什么是path.resolve('。')输出?

时间:2019-07-19 11:01:18

标签: javascript node.js path

如果node.js中的resolve('。')是什么路径?

我浏览了路径npm的文档。我所了解的只是从右到左的绝对路径解析的,因此它可能包括用于创建绝对路径的当前工作目录,并且还会删除不需要的反斜杠或在需要时添加反斜杠。

但是没有提及,下面的代码输出是什么?

除此之外,我需要知道“我可以将路径保存为字符串的变量传递给我吗,如果可以的话,传递数字变量会发生什么?

var Path = require('path');
console.log(Path.resolve('.'));

1 个答案:

答案 0 :(得分:0)

该行的输出将是项目的根。我尝试了从不同目录运行节点服务器的几种不同情况。

我的test.js位于C:\Users\Name\Desktop\Test\test.js

如果我从Test目录运行服务器,则输出将为C:\Users\Name\Desktop\Test\

但是如果我返回一个目录并再次运行,输出将为C:\Users\Name\Desktop\

现在,如果我们转到生产中带有托管服务器的真实场景,那么该行将为您提供托管服务器的完整路径。假设您有一个showImage(url)函数,它使用绝对路径作为参数并使用它来显示图像。您可以使用如下路径变量获取该网址:

showImage(Path.resolve('.') + "\images\image.jpg");

请记住,这只是一个示例,您可以使用它来引用项目中的任何文件。

对于第二个问题,如果您通过一个或多个路径,则会发生这种情况:

path.resolve('/foo/bar', './baz');
// Returns: '/foo/bar/baz'

path.resolve('/foo/bar', '/tmp/file/');
// Returns: '/tmp/file'

path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
// If the current working directory is /home/myself/node,
// this returns '/home/myself/node/wwwroot/static_files/gif/image.gif'