如果 resolve('.'( 在 node.js 中,路径是什么?
我浏览了路径 npm 的文档。我所理解的只是从右到左解析绝对路径,因此它可能包括用于制作绝对路径的当前工作目录,并在需要时删除不需要的反斜杠或添加。
但是没有提到,下面给定代码的输出是什么?
除此之外,我还需要知道"我可以将保存路径的变量传递为字符串吗,如果可以,那么如果我传递数字变量会发生什么?
var Path = require('path');
console.log(Path.resolve('.'));
该行的输出将是项目的根。我尝试了一些从不同目录运行节点服务器的不同情况。
我的测试.js在C:UsersNameDesktopTesttest.js
如果我从测试目录运行服务器,输出将C:UsersNameDesktopTest
但是如果我返回一个目录并再次运行,输出将C:UsersNameDesktop
现在,如果我们在生产中使用托管服务器移动到真实场景,该行将为您提供托管服务器的完整路径。假设您有一个showImage(url)
函数,该函数将绝对路径作为参数并使用它来显示图像。您可以使用 Path 变量获取该网址,如下所示:
showImage(Path.resolve('.') + "imagesimage.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'