【问题标题】:what is the path.resolve('.') output?path.resolve('.') 输出是什么?
【发布时间】:2019-07-19 11:01:18
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: javascript node.js path


    【解决方案1】:

    该行的输出将是您项目的根目录。我尝试了一些从不同目录运行节点服务器的不同案例。

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

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

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

    现在,如果我们转向使用托管服务器的实际生产场景,该行将为您提供托管服务器的完整路径。假设您有一个showImage(url) 函数,该函数将绝对路径作为参数并使用它来显示图像。您可以使用 Path 变量获取该 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' 

    【讨论】:

    • 所以你的意思是说resolve('.')返回我项目的根路径,你对第二个问题有什么想法吗。
    • 不是项目的根路径,而是运行项目的根路径。在我的示例中,我的项目的 rooth 路径是 C:\Users\Name\Desktop\Test\ ,但是我从收到的路径下方的目录中运行它的位置是 C:\Users\Name\Desktop\ 。但是当您部署代码时,该行可能会返回根路径。
    猜你喜欢
    • 1970-01-01
    • 2016-05-05
    • 2018-06-29
    • 1970-01-01
    • 2021-01-21
    • 2021-04-08
    • 2017-11-22
    • 2020-04-18
    相关资源
    最近更新 更多