-3

如果我执行以下操作:

// at the end of database.js
module.exports = mongoConnect;
module.exports = getDb;

// app.js
const mongoConnect = require('./util/database').mongoConnect;
mongoConnect();

我得到错误:ERROR: mongoConnect is not a function

但是,如果我改为这样导出它们:

// at the end of database.js
module.exports = {
    mongoConnect,
    getDb,
};

然后运行console.log(mongoConnect)给出app.js以下内容:

{
    mongoConnect: [Function: mongoConnect],
    getDb: [Function: getDb],
}

并且app.js可以mongoConnect很好地使用。

为什么我不能使用第一种格式?

4

1 回答 1

2

您正在覆盖导出,因此只保存最后一个值。此外,当直接赋值时exportsrequire('...')将是确切的导出。

您的第二个示例是您打算如何导出多个值:

// module
module.exports = {
    mongoConnect,
    getDb,
};

// other module
const module = require('./module');
module.getDb(...);

// or alternatively
const { getDb } = require('./module');
getDb(...);
于 2021-07-21T17:30:42.333 回答