这是一个菜鸟问题。当我运行app.js时,出现错误createTunnelToMongoDB is not a function
。我正在尝试使用tunnel-ssh访问我的数据库。有人可以告诉我为什么我不能这样做吗?
路径:app.js
const createTunnelToMongoDB = require("./createTunnelToMongoDB.js");
(async function app() {
try {
// create a tunnel
const tunnel = await createTunnelToMongoDB();
} catch (e) {
console.log("our error", e);
}
})();
路径:createTunnelToMongoDB.js
const tunnel = require("tunnel-ssh");
const fs = require("fs");
var config = {
username: "root",
privateKey: require("fs").readFileSync(path.join(__dirname, "../../id_rsa")),
...etc
};
var tnl = tunnel(config, function(error, tnl) {
if (error) {
console.log(error);
}
return tnl;
});
module.exports = tnl;
[createTunnelToMongoDB.js
导出对象,即对tunnel
的调用结果:
var tnl = tunnel(config, function(error, tnl) {
// ...
});
module.exports = tnl;
它不会导出函数,因此当您尝试调用它时,Node会正确地告诉您它不是函数。
[似乎createTunnelToMongoDB.js
未导入到app.js
。
尝试将app.js
编辑为:
import { tnl as createTunnelToMongoDB } from "./createTunnelToMongoDB.js";
(async function app() {
try {
// create a tunnel
const tunnel = await createTunnelToMongoDB();
} catch (e) {
console.log("our error", e);
}
})();