带有正斜杠的窗口中的Nodejs绝对路径

新手上路,请多包涵

我可以在nodejs的窗口中使用正斜杠的绝对路径吗?我正在使用这样的东西:

 global.__base = __dirname + '/';
var Article = require(__base + 'app/models/article');

但是在 Windows 上,构建失败了,因为它需要 C:\Something\Something/apps/models/article 之类的东西。我正在使用 webpack。那么如何规避这个问题,使要求保持不变,即 __base + 'app/models/src'

原文由 Megh Parikh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 979
2 个回答

我知道现在回答有点晚了,但我认为我的回答会帮助一些访客。

Node.js 中,您可以分别使用 __filename__dirname 变量轻松获取当前运行的文件名及其目录。

为了根据您的系统更正正斜杠和反斜杠,您可以使用 path 模块 Node.js

 var path = require('path');

就像这里是一条混乱的路径,如果我想在我的服务器上使用它,我希望它是正确的。在这里 path 模块为你做一切

var randomPath = “桌面//我的文件夹/\myfile.txt”;

 var correctedPath = path.normalize(randomPath); //that's that

console.log(correctedPath);

>  desktop/my folder/myfile.txt
>
> ```

如果你想要一个文件的绝对路径,那么你也可以使用 `resolve` `path` 模块的功能

var somePath = “./img.jpg”; var resolvedPath = path.resolve(somePath);

console.log(resolvedPath);

”`

 /Users/vikasbansal/Desktop/temp/img.jpg

原文由 Vikas Bansal 发布,翻译遵循 CC BY-SA 4.0 许可协议

现在是 2020 年,距问题发布 5 年,但我希望我的回答对某些人有用。我使用了替换方法,这是我的代码(express js 项目):

 const viewPath = (path.join(__dirname, '../views/')).replace(/\\/g, '/')

exports.articlesList = function(req, res) {
    res.sendFile(viewPath + 'articlesList.html');
}

原文由 burney 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题