beforeCreate方法在创建新用户时不会被调用
beforeCreate method is not being called upon creating new user
我正在使用sailsjs version 0.11.0
。我希望在创建新用户时,在将其存储到数据库之前,必须对其密码进行加密。为此,我使用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();
});
}
问题是,当我创建一个新用户时,beforeCreate
方法永远不会被调用,而它应该在create
操作时被调用。
我在哪里犯了错误?我该如何解决
我看到的人们最常见的错误是他们将回调(在本例中为beforeCreate)放在attributes对象上。
我会检查以确保它在你的user.js文件中的模块导出对象上
您需要检查的第二件事是是否存在验证错误。如果您有一个验证错误,那么它也不会运行。我只能假设情况并非如此,因为如果没有创建用户,您的问题可能会有所不同。
相关文章:
- 同步调用,直到用户通过angular验证为访问者
- 我们如何在互联网断开连接或用户关闭选项卡/浏览器时调用注销servlet
- 如何使用Ajax调用特定的控制器和操作来重定向用户
- Can用户'MediaWiki上的自定义JavaScript调用Lua模块
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- 使用Angular存储用户以前是否选中过复选框,然后再调用它的最佳方式是什么
- 如何在 Mozilla 插件中调用用户函数
- 如何在视图中保存用户输入内容,并在离开页面时对控制器进行后期调用
- 每次用户键入时调用函数
- 提示用户通过AJAX调用保存文件
- 如何通过ajax调用将用户重定向到页面
- 调用按钮单击事件 ajax 加载的用户控件
- 如何通过声云 api 调用获取用户 ID
- 防止客户端滥用/欺骗奖励用户的重复 Ajax 调用
- Ajax 调用在 IOS 中的用户交互之前不起作用
- 如何在没有JQuery的情况下,通过对服务器的基本ajax调用,根据浏览器上的用户活动保持服务器会话活动
- 从 aspx 页调用用户控件中的 jquery 函数
- 输入类型=文件onchange事件获胜't在调用用户定义函数时激发
- 如何从一个Javascript函数调用用户控件
- jQuery在函数中调用用户定义的函数