我不能 module.exports 超过 1 个功能
I can't module.exports more than 1 function
如果我执行以下操作:
// 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
就好了。
为什么我不能使用第一种格式?
您正在覆盖导出,因此只保存最后一个值。此外,当直接分配 exports
时, require('...')
将是确切的出口。
你的第二个例子是你打算如何导出多个值:
// module
module.exports = {
mongoConnect,
getDb,
};
// other module
const module = require('./module');
module.getDb(...);
// or alternatively
const { getDb } = require('./module');
getDb(...);
如果我执行以下操作:
// 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
就好了。
为什么我不能使用第一种格式?
您正在覆盖导出,因此只保存最后一个值。此外,当直接分配 exports
时, require('...')
将是确切的出口。
你的第二个例子是你打算如何导出多个值:
// module
module.exports = {
mongoConnect,
getDb,
};
// other module
const module = require('./module');
module.getDb(...);
// or alternatively
const { getDb } = require('./module');
getDb(...);