Javascript 函数内的配置可以';从app.js执行时找不到文件
这是一个很难回答的问题。我正在尝试使用隧道ssh访问我的数据库。如果我独立运行Javascript 函数内的配置可以';从app.js执行时找不到文件,javascript,ecmascript-6,Javascript,Ecmascript 6,这是一个很难回答的问题。我正在尝试使用隧道ssh访问我的数据库。如果我独立运行函数createTunnelToMongoDB,连接工作正常。当我从app()运行它时,它返回错误没有这样的文件或目录,请在config中打开“../../id\u rsa”。我认为问题与model.exports有关。有人能给我解释一下为什么我不能这样做吗 路径:app.js (async function app() { try { // create a tunnel const tunnel
函数createTunnelToMongoDB
,连接工作正常。当我从app()
运行它时,它返回错误没有这样的文件或目录,请在config中打开“../../id\u rsa”
。我认为问题与model.exports
有关。有人能给我解释一下为什么我不能这样做吗
路径:app.js
(async function app() {
try {
// create a tunnel
const tunnel = await createTunnelToMongoDB();
} catch (e) {
console.log("our error", e);
}
})();
var config = {
username: "root",
privateKey: require("fs").readFileSync("../../id_rsa"),
...etc
};
var tnl = tunnel(config, function(error, tnl) {
if (error) {
console.log(error);
}
return tnl;
});
module.exports = tnl;
路径:createTunnelToMongoDB.js
(async function app() {
try {
// create a tunnel
const tunnel = await createTunnelToMongoDB();
} catch (e) {
console.log("our error", e);
}
})();
var config = {
username: "root",
privateKey: require("fs").readFileSync("../../id_rsa"),
...etc
};
var tnl = tunnel(config, function(error, tnl) {
if (error) {
console.log(error);
}
return tnl;
});
module.exports = tnl;
readFileSync
的路径相对于工作目录。如果希望它与模块相关,则必须使用\uuu dirname
将其连接起来,该路径指向包含模块的目录:
var fs = require("fs");
var path = require("path");
var config = {
username: "root",
privateKey: fs.readFileSync(path.join(__dirname, "../../id_rsa")),
...etc
};