【发布时间】:2016-06-21 14:32:18
【问题描述】:
我有一个实例,其中有用户和角色。我有以下内容:
var User = sequelize.define("Users", {
username: DataTypes.STRING,
password: DataTypes.STRING,
});
var Role = sequelize.define("Role", {
role: DataTypes.STRING
});
var UsersRole = sequelize.define("UsersRole");
User.belongsToMany(Role, {through: UsersRole});
这为我在数据库中创建了一个 UsersRoles 表,其中包含 UserId 和 RoleId 列。这一切都很好,但现在我希望能够更新用户角色,我不知道该怎么做!到目前为止,我已经尝试了以下方法,但没有成功:
models.Users.findAll({
where: { id: req.params.id },
include: [{ all: true }]
}).then(function(dbUser){
dbUser[0].Roles[0].updateAttributes({
RoleId: req.body.role,
},
{
where: { UserId : req.params.id }
}
).then(function (result) {...
总而言之,我想做的就是能够更改用户角色,因此更新“UsersRoles”表并更改给定的RoleId >用户 ID。我似乎不太明白如何通过任何 sequelize 语法访问 UsersRoles 表!
我可以编写一些原始 SQL,但感觉不对?
编辑
我只想更新用户角色,如果表有:
|用户名 |角色 ID | ------------------ | 1 | 1 |我希望能够将其更改为:
|用户名 |角色 ID | ------------------ | 1 | 2 |但我无法弄清楚执行此操作的代码!
【问题讨论】:
标签: node.js sequelize.js