【发布时间】:2023-03-10 23:55:01
【问题描述】:
我正在构建一个 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 模块导入,但我无法让它与上面的代码一起工作。
我是如何导入的:
index.ts:
import * as mongo from "./mongo";
尝试调用我的运行方法:
mongo.run('dburl');
这会引发以下错误:'property run does not exist'
现在我找到了解决这个问题的方法,方法是在我的运行声明之前添加一个额外的导出:
export const run = async (db: string): Promise<void> => {...}
我不明白为什么我必须这样做,因为我已经在module.exports 中导出了这个函数,是我在索引文件中导入错误还是有更好的方法?
【问题讨论】:
-
尝试使用
import mongo from "./mongo"; -
module.exports是 common.js,不是 ES6,你可以这样做export { run }
标签: javascript node.js ecmascript-6 module-export