【发布时间】:2021-01-05 06:45:06
【问题描述】:
StackOverflow 社区!
我一直在从事一个涉及角色的项目。现在我通过邮递员设置了一名管理员和一名版主,并将其保存到我的数据库中。
现在当用户注册时,我想将“用户”的默认角色发送到我的数据库,管理员可以稍后更新(如果他愿意的话)。
我将发送角色类型的旧代码:
exports.signup = (req, res) => {
// Save User to Database
console.log("Processing func -> SignUp");
User.create({
name: req.body.name,
username: req.body.username,
email: req.body.email,
password: bcrypt.hashSync(req.body.password, 8)
}).then(user => {
Role.findAll({
where: {
name: {
[Op.or]: req.body.roles
}
}
}).then(roles => {
user.setRoles(roles).then(() => {
res.send("User registered successfully!");
});
}).catch(err => {
res.status(500).send("Error -> " + err);
});
}).catch(err => {
res.status(500).send("Fail! Error -> " + err);
})
}
邮递员请求看起来像:
{
"name": "Examp",
"username": "example",
"email": "gmail@gmail.com",
"roles": ["admin"],
"password": "12345"
}
这很完美。我现在只想发送没有“角色”部分的邮递员请求。我知道这个技巧在Role.finndAll 部分的某个地方,但我无法弄清楚(我认为它就在那里,哈哈)。我尝试将[Op.or]: req.body.roles 替换为roles: ["user"],但没有成功。
非常感谢您的帮助! 谢谢!
【问题讨论】:
-
你试过
where: { name: "user" }吗? -
@Anatoly 就像一个魅力!非常感谢!
标签: mysql node.js sequelize.js