const userModel = connection.define('user', {
user_id: {
type: Sequelize.BIGINT,
primaryKey: true,
autoIncrement: true
},
user_name: {
type: Sequelize.STRING,
unique: true
},
email: {
type: Sequelize.STRING,
unique: true
},
password: {
type: Sequelize.STRING
}
},
{
hooks: {
beforeCreate: () =>{
console.log("hook called");
return new Promise((resolve,reject) => {
const salt = bcrypt.genSalt(10);
const passwordHash = bcrypt.hash(userModel.password, salt);
userModel.password = passwordHash;
console.log('simple pass', userModel.password);
console.log('hashed password', passwordHash);
return resolve(userModel);
});
}
}
});
它返回此错误。
已调用挂钩
简单传递承诺{}
哈希密码承诺{}
执行(默认):在“用户”(“user\u id”,“user\u name”,“email”,“password”,“createdAt”,“updatedAt”)值中插入(默认值,'deaehrddjelltariq','ddehreejd@gmail.com“,”abcd“,”2018-02-15 00:17:51.272+00:00“,”2018-02-15 00:17:51.272+00:00”)返回*;
(节点:13686)未处理PromisejectionWarning:错误:非法参数:未定义,对象
异步时(/Users/mfaisal/NodeProjects/chaffer/node\u modules/bcryptjs/dist/bcrypt.js:214:46)
at/Users/mfaisal/NodeProjects/chaffer/node\u modules/bcryptjs/dist/bcrypt。js:223:17
在新承诺()
at对象。bcrypt公司。哈希(/Users/mfaisal/NodeProjects/chaffer/node\u modules/bcryptjs/dist/bcrypt.js:222:20)
at Promise(/Users/mfaisal/NodeProjects/chaffer/models/user.js:29:37)
在新承诺()
at功能。在创建之前(/用户/mfaisal/NodeProjects/chaffer/models/user.js:27:14)
在承诺中。每个hook(/Users/mfaisal/NodeProjects/chaffer/node\u modules/sequelize/lib/hooks.js:130:35)
在tryCatcher(/Users/mfaisal/NodeProjects/chaffer/node\u modules/bluebird/js/release/util.js:16:23)
at对象。gotValue(/Users/mfaisal/NodeProjects/chaffer/node\u modules/bluebird/js/release/reduce.js:155:18)
at对象。Gotacum(/Users/mfaisal/NodeProjects/chaffer/node\u modules/bluebird/js/release/reduce.js:144:25)
at对象。tryCatcher(/Users/mfaisal/NodeProjects/chaffer/node\u modules/bluebird/js/release/util.js:16:23)
在承诺中_settlePromiseFromHandler(/Users/mfaisal/NodeProjects/chaffer/node\u modules/bluebird/js/release/promise.js:512:31)
在承诺中_结算协议(/Users/mfaisal/NodeProjects/chaffer/node\u modules/bluebird/js/release/promise.js:569:18)
在承诺中_结算协议(settlepromiscetx)(/Users/mfaisal/NodeProjects/chaffer/node\u modules/bluebird/js/release/promise.js:606:10)
异步时_drainQueue(/Users/mfaisal/NodeProjects/chaffer/node\u modules/bluebird/js/release/async.js:138:12)
异步时_drainQueues(/Users/mfaisal/NodeProjects/chaffer/node\u modules/bluebird/js/release/async.js:143:10)
立即。异步。drainQueues(/Users/mfaisal/NodeProjects/chaffer/node\u modules/bluebird/js/release/async.js:17:14)
运行回调时(timers.js:756:18)
在tryOnImmediate(计时器:717:5)
在processImmediate[作为\u immediateCallback](timers.js:697:5)
(节点:13686)未处理PromisejectionWarning:未处理的承诺拒绝。此错误源于在没有catch块的异步函数内部抛出,或拒绝未处理的承诺。catch()。(拒绝id:1)
(节点:13686)[DEP0018]弃用警告:未处理的承诺拒绝被弃用。将来,未处理的承诺拒绝将终止节点。具有非零退出代码的js进程。