javascript - node.js 模块导出返回和使用对象
问题描述
说我有以下modelConfiguration.js
文件:
const Sequelize = require('sequelize');
const dbConfig = require('../config/database.config');
module.exports = function () {
const sequelize = new Sequelize(dbConfig.database, dbConfig.user, dbConfig.password, {
host: 'localhost',
dialect: 'mysql',
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
// http://docs.sequelizejs.com/manual/tutorial/querying.html#operators
operatorsAliases: false
});
const employee = sequelize.define('employee', {
id:{
type: Sequelize.DataTypes.INTEGER,
primaryKey: true
},
token: Sequelize.DataTypes.TEXT
});
return sequelize;
};
现在在这里,您可以看到我返回了sequelize
对象。
现在我希望设置一个等于返回的对象的变量,所以在我server.js
执行以下操作:
const seq = require('./models/modelConfig');
但是,这不起作用。
谁能告诉我我做错了什么?(也许我误解了什么)
解决方案
调用require('./models/modelConfig');
返回一个初始化 Sequelize 的函数。
您应该调用该方法来获取实例:
const seqInitializer = require('./models/modelConfig');
const seq = seqInitializer();
或者。直接返回sequelize即可:
const Sequelize = require('sequelize');
const dbConfig = require('../config/database.config');
function initSequelize() {
const sequelize = new Sequelize(dbConfig.database, dbConfig.user, dbConfig.password, {
host: 'localhost',
dialect: 'mysql',
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
// http://docs.sequelizejs.com/manual/tutorial/querying.html#operators
operatorsAliases: false
});
const employee = sequelize.define('employee', {
id:{
type: Sequelize.DataTypes.INTEGER,
primaryKey: true
},
token: Sequelize.DataTypes.TEXT
});
return sequelize;
};
module.exports = initSequelize();
推荐阅读
- java - 分解 JavaPairRDD 对象
- php - 使用 curl 和 substr_count 搜索源代码,使用特定计数,并获取所有行
- pyspark - 如何提高纱线应用并行度
- amazon-web-services - 从 SQS 响应中获取数据
- c++ - #pragma pack 的奇怪行为
- python - 如何根据另一列的正值或负值创建布尔列
- oauth - 虚拟助手打字稿/身份验证(新技能或修改 GeneratedCode)
- python - 如何为诅咒中的自动回显字符着色?
- excel - 如何在vba中将.formula与CONCATENATE一起使用以获取范围
- wso2esb - 试图在 wso2 中创建数据服务