nodejs中未解析的相对路径

时间:2017-04-03 07:01:09

标签: node.js

我创建了一个名为core的模块,它具有项目的核心功能。 我还创建了一个在nodejs中使用核心项目的服务项目。此核心模块将作为node_modules依赖项(package.json)包含在service-app。

我的服务应用调用核心应用,核心应用使用相对路径:

//core-app -> logger.js

const loggerConfig = require('../../configs/logger-config.json');

当服务应用启动时,它需要core-app -> logger.js

const logger = require('core');

比提示错误

Error: Cannot find module '../../configs/logger-config.json

此处../../configs/logger-config.json是正确的,有时会在其他系统上正常运行。

现在,我将相对路径替换为

//core-app -> logger.js
const path = require('path');
const loggerConfig = require(path.join(__dirname,'../../configs/logger-config.json'));

然后它正在运行。

我解决了错误但不确定代码标准。作为参考,我检查了另一个node_modules库,发现它们也以相同的方式使用了relative,但我的情况是它提示错误。

1 个答案:

答案 0 :(得分:0)

__dirname给出了线程在nodejs中执行的当前目录。因此,通过__dirname更好地使用相对路径。