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

时间:2017-12-14 17:19:30

标签: node.js express sails.js sails-mongo

好吧,我试图用Sails 1.0.0-42创建用户,问题是没有调用用户模型的回调生命周期。我在很多方面都尝试过,没有任何东西可以调用。提前谢谢。

这是Action2的代码"注册":

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。

1 个答案:

答案 0 :(得分:0)

您的模型文件声明:

module.export

但它必须是:

module.exports

s有很大的不同!

它与您当前代码完全兼容的原因是,默认情况下,内置sails-disk数据库是无架构,因此即使您的User.js文件不是& #39; t导出任何东西,它仍然允许你用你想要的任何字段创建记录。