javascript - 未处理的拒绝 SequelizeUniqueConstraintError : Validation error

标签 javascript mysql node.js sequelize.js

我收到这个错误:

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/

相关文章:

javascript - html 表中的 Node.js Cheerio 解析 html 表

node.js - 无法快速使用 Redis

javascript正则表达式替换输入表单验证

javascript - 在 setInterval 超时之前回调函数未完成

javascript - Magicsuggest 更改占位符文本

mysql - SQL查询中如何添加不同的条件语句

javascript - 为什么 Webpack 4 不创建 dist 文件夹但 webpack 2 会创建?

javascript - Angular2/4 在请求后填充表单

来自另一个 CASE 的 MySQL CASE 结果导致 SQL 查询

mysql - 同时更新依赖于实体属性的实体