Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sails.js 在Sails模型中何时调用beforeUpdate方法?_Sails.js_Waterline - Fatal编程技术网

Sails.js 在Sails模型中何时调用beforeUpdate方法?

Sails.js 在Sails模型中何时调用beforeUpdate方法?,sails.js,waterline,Sails.js,Waterline,我乘帆船去 我在用户模型中创建 module.exports = { attributes: { login: { type: 'string', }, password: { type: 'string', }, birthDate: { type: 'date', } }, beforeCre

我乘帆船去 我在用户模型中创建

module.exports = {

    attributes: {

        login: {
            type: 'string',
        },

        password: {
            type: 'string',
        },

        birthDate: {
            type: 'date',
        }
    },

    beforeCreate: function(values, next) {
        //someCode();
    },

    beforeUpdate: function(values, next) {
        console.log("i\'m here!");
        if (values.birthDate && _.isNaN(Date.parse(values.birthDate))) {
            console.log(values.birdDate);
            return next({err: ["Wrong date!"]});    
        }

        values.birthDate = Date.parse(values.birthDate);
        next();
    }
};
我想更改beforeUpdate方法中日期值的字符串值,但未调用此方法。 可能我必须手动调用它?

您的beforeUpdate方法不会执行,因为您有验证错误

生日应该是date,但sails获取字符串并停止更新过程

所以,您应该在验证模型记录之前将其转换为日期,并在更新之前尝试这样做

只需将beforeUpdate方法重命名为beforeValidate。这可能会有所帮助


您可以找到sails执行模型生命周期方法的顺序。

告诉我们如何更新控制器中的记录,plscode更新:functionreq,res,next{User.updatereq.param'id',req.params.all,function userUpdatederr{if err{req.session.flash={err err:err};res.redirect'/user/edit/'+req.param'id';}else res.redirect'/user/show/'+req.param'id';};};}尝试将user.update更改为user.updatebydstory。不了解如何使用Markdown没有问题。欢迎来到社区。您不能在注释中打断行。在这种情况下,最好更新你的帖子