我正在创建我的第一个 Node.js 模块,并且很难确定处理此问题的最佳方法。接收用户输入的模块文件路径的推荐方法是什么?那我该如何解决那在哪里?用户调用我的模块的位置和运行代码的位置位于两个不同的位置。
让我们更进一步。假设用户有一个 JSON 配置文件,其中包含这些路径的数组(在 config/settings.json 中):
{
"paths": [
"../path1",
"path2",
"/path/to/path3",
"~/path4"
]
}
现在显然这些路径是相对于配置文件的,而不是任何执行代码。这感觉不对,因为现在我的方法必须接受__dirname
、 配置文件相对于 的路径__dirname
等。
var mymodule = require('mine');
mymodule(__dirname, './config/settings.json');
我从配置中读取的任何文件都必须基于此配置文件的位置。这感觉很奇怪。建议?