【发布时间】:2017-03-13 18:50:48
【问题描述】:
我正在努力在一台服务器上安装多个数据库。为了开始这个过程,我在 index.js 导出对象中分配了一个数据库,这样我就可以在构建系统时添加另一个数据库。下面是问题的描述。
当我运行 server.js 文件时,数据库 db1 的 .sync 函数会同步 Table1 和 Table2,然后开始监听其端口。很明显 server.js 文件正在通过var db = require('./models') 接收module.exports = db。但是在文件 models/Table1.js 中,服务器会抛出错误TypeError: Cannot read property 'Table1' of undefined。我确实在 models/Table1.js 中检查了 db 的控制台输出,它是空的,因此在此模型中无法访问其明确的 module.exports = db。
有人可以提供解决此问题的方法吗?
上面列出的Table1.js模型和其他文件的部分代码如下:
模型/Table1.js
var db = require('./.')
[...]
var new_instance = db.db1.Table1.build({...})
server.js
var db = `require('./models')`
[...]
db.db1.sync(function(err) {});
models/index.js
var sq = new Sequelize(dbname, user, password, config);
db['db1'] = {
Sequelize: Sequelize,
sequelize: sq,
Table1: sq.import(__dirname + '/...'),
Table2: sq.import(__dirname + '/...')
}
module.exports = db;
【问题讨论】:
标签: javascript mysql node.js sequelize.js