我正在构建一个 node.js 应用程序,我试图将我所有的 mongodb 逻辑放在一个单独的文件中。此时这个文件只有一个初始化mongodb连接的功能。我想使用module.exports
.
我的 mongo 文件如下所示:
import { connect } from "mongoose";
const run = async (db: string): Promise<void> => {
await connect(db, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
};
module.exports = {
run
};
我想在 index.ts 中使用这个 run 函数,并试图将它作为 ES6 模块导入,但我无法让它与上面的代码一起工作。
我如何导入:
索引.ts:
import * as mongo from "./mongo";
试图调用我的运行方法:
mongo.run('dburl');
这会引发以下错误:' property run does not exist
'
现在我通过在我的运行声明之前添加一个额外的导出找到了解决这个问题的方法:
export const run = async (db: string): Promise<void> => {...}
我不明白为什么我必须这样做,因为我已经在里面导出了这个函数module.exports
,我是在我的索引文件中导入错误还是有更好的方法来做到这一点?