【问题标题】:nodejs Sequelize orm model.validation not a functionnodejs Sequelize orm model.validation 不是函数
【发布时间】:2017-06-15 18:28:29
【问题描述】:

这是我的User 模型定义

options: {
        tableName: 'cushbu_users',
        hooks:{},
        timestamps:false,

        /*--field names and validation rules --*/
        email:{
          type:Sequelize.STRING,
          validate:{
              notEmpty:true
          }
        },
        first_name:{
            type:Sequelize.STRING,
            validate:{
                notEmpty:true
            }
        }
    }

如何在我的控制器中获取模型验证错误消息

我尝试过这些

 User.validate().success(function () {
             console.log('ok');
         }).error(function (error) {
             console.log(error);
         }) 

但我收到以下错误user.validate not function

【问题讨论】:

  • 我也一样。你解决了这个问题吗@Jabaa

标签: node.js express sails.js sequelize.js


【解决方案1】:

您应该从即时对象调用此方法,而不是像这样的 sequelize 模型:

User.create({
        name: "test"
        email: "test"
        password: "test"
    }).then(function(user){
      // validate
       errors = user.validate();

    });

【讨论】:

  • 让我检查一下
【解决方案2】:

您可以在 Model 类中添加 classMethods 并将逻辑放入其中并返回错误。

classMethods: {
      validator: function() {
        var errors = [];
        if (!this.email){
           errors.push('Email id should not be null');
        }
        .
        .
        .
        .
        .
       return errors;
      },
}

User.validator() 这样从你的路由调用方法,如果它返回空数组,那么你的User 对象是有效的,否则显示错误消息。

【讨论】:

猜你喜欢
  • 2020-02-20
  • 1970-01-01
  • 2016-04-15
  • 2016-01-29
  • 2018-12-23
  • 2021-12-04
  • 2020-04-08
  • 2018-07-30
  • 2017-04-24
相关资源
最近更新 更多