什么时候在 Sails 模型中调用 beforeUpdate 方法?

When call beforeUpdate method in Sails models?

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

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 方法永远不会执行,因为您有验证错误。

birthDate 应该是日期,但 sails 获取字符串并停止更新过程。

因此,您应该在验证模型记录之前将其转换为最新版本(并且您尝试在更新之前这样做);

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

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