Node.js path.join删除前导句点

时间:2014-04-16 00:36:44

标签: node.js

我带着一个我计划在我的个人电脑上摆弄的工作项目带回家,我安装了所有东西,使用完全相同的环境(节点v0.11.12)等。启动项目,然后我问好了消息抱怨配置加载程序模块无法找到文件(存在且位于错误暴露的路径下)。

仔细观察错误,我意识到问题是path.join()。其中

path.join('./foo/bar');
// 'foo/bar'

哪个不好。为什么path.join会删除领先期?

**注意**

以上只是一个例子。该程序使用像

这样的功能
var configFile = require(path.join(modulePath, 'conf', file));

例如,modulePath相对于当前工作目录(即./app/module/

1 个答案:

答案 0 :(得分:1)

这是正确的行为,并记录在Path.join文档中:

  

将所有参数连接在一起并规范化生成的路径。

正确因为foo/bar ./foo/bar的规范化(canoncial)形式,就像./foo/././bar/.的规范化形式一样1}}或foo/baz/../bar

require('./foo/bar')require('foo/bar')之间的差异,以及由此产生的任何问题,都应在没有path.join的其他问题中明确解决。)