多对多:sequelize不会创build方法
考虑两个模型User
和Project
的关系多对多。
当我尝试这个: db.User.getProjects()
我得到一个错误
TypeError:Object [object Object]没有方法'getProjects()'
我已经阅读了文档,这个方法应该是自动生成的
那么为什么我得到这个错误?
源代码:
project.js
module.exports = function(sequelize, DataTypes) { var Project = sequelize.define('Project', { name: DataTypes.STRING }, { classMethods: { associate: function(models) { Project.hasMany(models.User); } } }) return Project }
user.js的
module.exports = function(sequelize, DataTypes) { var User = sequelize.define('User', {}, { classMethods: { associate: function(models) { User.hasMany(models.Project), User.belongsTo(models.Boss, { foreignKey: 'user_id' }) } } }) return User }
这是因为db.User是模型,而不是实例。
getAccessor()方法在实例上被调用。 你应该这样做:
db.User .find( {where: {user_id: user_id}} ) .then(function(user) { return user.getProjects(); }) .then(function(projects) { //do something with your projects DAO }) .catch(function(err) {});
这是实例,或从您的第一个db.User.find
返回的具有方法的DAO。
- 如何Wordnet可以转移到MongoDB
- 数据库OR数组
- 如何在mongoose中创build一个新的数据库?
- 如何使用nodejs pg-promise库将具有uuid数组的logging插入到pg表中
- 如何在heroku postgres查询中使用LOCAL VARIABLES?
- 如何使用Node.js net.Socket与Postgresql数据库通信就像使用terminal一样
- 很多很多自我参考在sequelize在twitter像web应用程序
- 您将如何在NoSql数据库中对customer> order> ordertem> product进行build模?
- 为什么我的mongodb调用这么慢?