好吧,我试图用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。
答案 0 :(得分:0)
您的模型文件声明:
module.export
但它必须是:
module.exports
那s
有很大的不同!
它与您当前代码完全兼容的原因是,默认情况下,内置sails-disk
数据库是无架构,因此即使您的User.js
文件不是& #39; t导出任何东西,它仍然允许你用你想要的任何字段创建记录。