【发布时间】:2018-05-24 15:47:52
【问题描述】:
我是 Nodejs 和 Mongoose 的新手,一切正常,直到新版本的 mongoose 被贬值。我看到建议使用我正在尝试做的蓝鸟。我有以下代码:
app.post('/users', (req, res) => {
var body = _.pick(req.body, ['email', 'password']);
var user = new User(body);
user.save().then(() => {
return user.generateAuthToken();
}).then((token) => {
res.header('x-auth', token).send(user);
}).catch((e) => {
res.status(400).send(e);
})
});
和预钩子:
UserSchema.pre('save', function (next) {
var user = this;
if (user.isModified('password')) {
bcrypt.genSalt(10, (err, salt) => {
bcrypt.hash(user.password, salt, (err, hash) => {
user.password = hash;
next();
});
});
} else {
next();
}
});
在创建哈希并调用next() 之后没有任何反应,为什么会发生这种情况?
所有帮助将不胜感激
编辑:
调用永远不会进入generateAuthToken() 函数
【问题讨论】:
-
我的预挂钩也不起作用。我有猫鼬 4.13.6。我使用 Bluebird 还是原生 Promises 并不重要。尝试了“保存”、“更新”、“findOneAndUpdate”钩子......
标签: node.js mongodb mongoose mongoose-schema