我正在尝试使用带有 sequelize 的 feathersjs 设置 am:n 关联。我正在遵循这个“说明”,但必须适应更新feathersjs同时经历。
我将已创建的用户与已创建的项目相关联的钩子:
module.exports = function (options = {}) {
return function (hook) {
hook.app.service('users')
.get(hook.data[0].user_id)
.then(users => {
hook.app.service('items')
.find(hook.data[0].item_id)
.then(benches => items.addMyusers(users));
});
return Promise.resolve(hook);
};
};
我得到:
error: Unhandled Rejection at: Promise Promise {
<rejected> TypeError: Cannot read property 'addMyusers' of undefined
在我的用户模型定义下,我将关联设置为:
users.associate = function (models) {
users.belongsToMany(models.items, {
through: {
model: 'favorites-items',
unique: false
},
foreignKey: 'item_id',
as: 'myitems',
constraints: false
});
};
在项目模型定义下:
items.associate = function (models) {
items.belongsToMany(models.users, {
through: {
model: 'favorites-items',
unique: false
},
as: 'myusers',
foreignKey: 'user_id',
constraints: false
});
};
为什么 addMyusers 不存在?建立关联时应该自动生成这样的方法吗?
如续集文档中所述:
这会将方法 getUsers、setUsers、addUser、addUsers 添加到 Project,并将 getProjects、setProjects、addProject 和 addProjects 添加到 User。