我收到这个错误:
Unhandled rejection SequelizeUniqueConstraintError: Validation error
我该如何解决这个问题?
这是我的模型/user.js
"use strict";
module.exports = function(sequelize, DataTypes) {
var User = sequelize.define("User", {
id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true},
name: DataTypes.STRING,
environment_hash: DataTypes.STRING
}, {
tableName: 'users',
underscored: false,
timestamps: false
}
);
return User;
};
这是我的 routes.js:
app.post('/signup', function(request, response){
console.log(request.body.email);
console.log(request.body.password);
User
.find({ where: { name: request.body.email } })
.then(function(err, user) {
if (!user) {
console.log('No user has been found.');
User.create({ name: request.body.email }).then(function(user) {
// you can now access the newly created task via the variable task
console.log('success');
});
}
});
});
最佳答案
调用 User.create()
返回一个 Promise.reject()
,但是没有 .catch(err)
处理它。如果不捕获错误并不知道输入值,就很难说出验证错误是什么——request.body.email
可能太长,等等。
捕获 Promise 拒绝以查看错误/验证详细信息
User.create({ name: request.body.email })
.then(function(user) {
// you can now access the newly created user
console.log('success', user.toJSON());
})
.catch(function(err) {
// print the error details
console.log(err, request.body.email);
});
更新,因为现在是 2019 年,您可以使用 async/await
try {
const user = await User.create({ name: request.body.email });
// you can now access the newly created user
console.log('success', user.toJSON());
} catch (err) {
// print the error details
console.log(err, request.body.email);
}
关于javascript - 未处理的拒绝 SequelizeUniqueConstraintError : Validation error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40709409/