我可以在nodejs的窗口中使用带正斜杠的绝对路径吗?我用的是这样的东西:
global.__base = __dirname + '/';
var Article = require(__base + 'app/models/article');
但在windows上,构建失败,因为它需要像C:\Something\Something/apps/models/article
这样的东西。我正在使用webpack。那么,如何规避这个问题,使要求保持不变,即。__base + 'app/models/src'
?
9条答案
按热度按时间mnowg1ta1#
我知道现在回答有点晚,但我想我的回答会帮助一些游客。
在
Node.js
中,您可以通过分别使用__filename
和__dirname
变量轻松获取当前运行的文件名及其目录。为了根据您的系统更正正斜杠和反斜杠,您可以使用
Node.js
的path
模块就像这里是一个混乱的路径,我希望它是正确的,如果我想在我的服务器上使用它。这里的
path
模块为您做的一切var randomPath =“桌面//我的文件夹/\myfile.txt”;
如果你想要一个文件的绝对路径,那么你也可以使用
path
模块的resolve
函数ef1yzkbh2#
现在是2020年,离这个问题发表还有5年,但我希望我的答案对某些人有用。我使用了replace方法,下面是我的代码(express js项目):
os8fio9y3#
最后我是这样做的:
然后需要
var Article = require(__base + 'app/models/article');
。这使用了npm包中的slash(在路径中用slash替换反斜杠,并处理更多的情况)igetnqfo4#
公认的答案实际上并没有回答大多数人来这里的问题。如果您希望规范化所有路径分隔符(可能用于字符串工作),那么您需要以下内容。
所有代码段都将node.js内置模块
path
导入到path
变量中。它们还将其工作的变量存储在不可变变量str
中,除非另有说明。如果你有一个字符串,这里有一个快速的一行代码将字符串规范化为一个正斜杠(/):
您可以通过替换正斜杠(/)来规范化为任何其他分隔符。
如果你只想要一个路径部分的数组,使用这个:
一旦你完成了你的字符串工作,使用它来创建一个可以使用的路径:
在数组中,使用以下命令:
fkvaft9z5#
这是我使用的方法,以保存一些处理:
v440hwme6#
我建议不要这样做,因为它是修补节点本身,但.你的要求没有改变
mmvthczy7#
Windows使用
\
,Linux和mac使用/
作为路径前缀对于Windows:
'C:\\Results\\user1\\file_23_15_30.xlsx'
对于Mac/Linux:
/Users/user1/file_23_15_30.xlsx
如果文件有
\
-它是windows,使用fileSeparator作为\
,否则使用/
p1tboqfb8#
现在已经太晚了,但实际的答案是使用**
path.sep
或path.join
,这取决于需求。在Windows目录中,路径将是“”和Linux“/”,因此路径库将自动执行此工作。
或
6pp0gazn9#
使用路径模块