未调用 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
文件未导出任何内容,它仍然允许您使用所需的任何字段创建记录。
好吧,我正在尝试使用 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
文件未导出任何内容,它仍然允许您使用所需的任何字段创建记录。