在 nodeJS 应用程序中发送默认角色
Sending default role in nodeJS application
Whosebug 社区!
我一直在做一个涉及角色的项目。现在我通过邮递员指定了一位管理员和一位版主,并将其保存到我的数据库中。
现在,当用户注册时,我想将“用户”的默认角色发送到我的数据库,管理员可以稍后更新(如果他愿意的话)。
我将发送角色类型的旧代码:
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
部分的某个地方,但我无法弄清楚(嗯,我认为它在那里,哈哈)。我试图用 roles: ["user"]
替换 [Op.or]: req.body.roles
但它没有用。
非常感谢您的帮助!
谢谢!
解决方案是@Anatoly
需要更正的是
where: { name: "user" }
你可以试试这个:
where: {
name: "user"
}
写在SQL查询中等于name="user"
。
Whosebug 社区!
我一直在做一个涉及角色的项目。现在我通过邮递员指定了一位管理员和一位版主,并将其保存到我的数据库中。
现在,当用户注册时,我想将“用户”的默认角色发送到我的数据库,管理员可以稍后更新(如果他愿意的话)。
我将发送角色类型的旧代码:
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
部分的某个地方,但我无法弄清楚(嗯,我认为它在那里,哈哈)。我试图用 roles: ["user"]
替换 [Op.or]: req.body.roles
但它没有用。
非常感谢您的帮助! 谢谢!
解决方案是@Anatoly 需要更正的是
where: { name: "user" }
你可以试试这个:
where: {
name: "user"
}
写在SQL查询中等于name="user"
。