【发布时间】:2021-03-09 21:57:30
【问题描述】:
我正在尝试创建一个函数来在我的 sql 数据库中创建新用户,但我希望我的用户名是唯一的,我设置了一个约束以使其成为我的数据库拒绝重复我的用户名。
// Create and Save a new User
exports.create = (req, res) => {
// Validate request
if (!req.body) {
res.status(400).send({
message: "Content can not be empty!"
});
}
// Create a User
const user = new User({
IdUtilisateur: generator.generateID(),
UserName: req.body.UserName,
Name: req.body.Name,
FirstName: req.body.FirstName,
Password: generator.generatePwd(),
Acces: req.body.Acces
});
// Save User in the database
User.create(user, (err, data) => {
if (err) {
console.log(err);
res.status(500).send({
message:
err.message || "Some error occurred while creating the User."
});
}else res.status(201).send(data);
});
}
现在在我的代码中,当我尝试使用已经存在的用户名创建新用户时,我收到一个错误作为响应:
"message": "ER_DUP_ENTRY: Duplicate entry 'Nname' for key 'UserName'"
我想知道如何处理这种特殊情况,这样如果我得到这个精确的错误,我可能会做一些事情,比如再试一次,但在最后添加一个 int 或任何东西,那么我该如何测试这个 mysql 错误?
【问题讨论】:
标签: javascript mysql node.js express