我第一次与Sequelize合作,请耐心等待)) 我创建了名为" models"的主要Sequelize连接文件,它看起来像:
var sequelize = new Sequelize(
dbsettings['database'],
dbsettings['username'],
dbsettings['password'],
...
}),
User = sequelize.import(__dirname+'/user'),
Role = sequelize.import(__dirname+'/role');
User.belongsToMany(Role, {through: 'user_roles'});
Role.belongsToMany(User, {through: 'user_roles'});
module.exports = sequelize;
如何在我的控制器中为User.findById()
调用用户模型?
如果我导入此文件并尝试调用类似models.User.findById
的内容,我什么也得不到。请向我解释这个概念。
答案 0 :(得分:0)
您应该导出模型,然后导入控制器,然后使用:
User.findOne({ where: { id: userId } })
.then(function(user) {
if (!user) {
//raise error or log it
} else {
// everything is ok, use returned user object
console.log(user.name);
}
});
您应该记住,任何数据库操作都是异步调用,而Sequelize正在返回承诺。
答案 1 :(得分:0)
想出来!
1)修改出口如:
exports.sequelize = sequelize;
exports.User = User;
2)现在可以导入sequilize连接或模型:var User = require('../models').User
;