未调用 SAILS JS 1.0 模型回调生命周期

SAILS JS 1.0 model callback lifecycle is not called

好吧,我正在尝试使用 Sails 1.0.0-42 创建用户,问题是未调用用户模型的回调生命周期。我尝试了很多方法,但什么也没叫。提前致谢。

这是Action2的代码"signup":

module.exports = {

   friendlyName: 'Create User',

   description: 'user create action2',

   inputs: {

        name: {
            description: 'user create',
            type: 'string',
            required: true
        },
        email: {
            description: 'user create',
            type: 'string',
            required: true
        },
        password: {
            description: 'user create',
            type: 'string',
            required: true
        },

   },

   exits: {
      notFound: {
        description: 'ERRO create user.',
        responseType: 'notFound'
      }
   },

   fn: async function (inputs, exits) {

        const {name, email, password} = inputs;

        var user = await User.create({name, email, password}).fetch();

        if(!user) return exits.notFound();

        return exits.success(user);

   }
};

这是用户模型代码

    var bcrypt = require('bcrypt');

module.export = {

    attributes: {

        name: {
            type: 'string',
            required: true,
        },

        email: {
            type: 'string',
            required: true,
        },

        password: {
            type: 'string',
            minLength: 6,
            required: true,
            columnName: 'hashed_password'
        },

    },

    // Lifecycle Callbacks

    beforeCreate: function (values, cb) {

        // Hash password
        bcrypt.hash(values.password, 10, function(err, hash) {
            if(err) return cb(err);
            values.password = hash;
            cb();
        });
    }

};

用户已创建,但密码未加密,测试未调用beforeCreate。

您的模型文件声明:

module.export

但必须是:

module.exports

s 有很大的不同!

它与您当前的代码一起工作的原因是,默认情况下,内置 sails-disk 数据库是 schemaless,所以即使您的 User.js 文件未导出任何内容,它仍然允许您使用所需的任何字段创建记录。