创build新用户时,不会调用beforeCreate方法
我正在使用sailsjs version 0.11.0
。 我想在创build新用户时,必须对其密码进行encryption,然后才能将其存储到数据库中。 为此,我正在使用bcrypt
库。 我在User.js
模型中添加了一个方法beforeCreate
,如下所示
beforeCreate: function (values, next) { if (!values.password || values.password != values.confimation) { return next({ err: ["Password doesnt match password confirmation."] }); } console.log(values); require('bcrypt').hash(values.password, 10, function passwordEncrypted (err, encryptedPassword) { if (err) return next(err); values.encryptedPassword = encryptedPassword; // values.online = true; next(); }); }
问题是,当我创build一个新的用户beforeCreate
方法从来没有被调用,而它应该被调用create
操作。
我在哪里犯错,我该如何解决?
我看到的人最常见的错误是他们把属性对象的callback(在这种情况下beforeCreate)。
我会检查,以确保它在您的user.js文件中的模块exports对象
你需要检查的第二件事是如果你有一个validation错误。 如果你有一个validation错误,那么它也不会运行。 我只能假设情况并非如此,因为如果用户没有被创build,你的问题可能会有所不同。