나는 Nodejs와 몽구스를 처음 접했을 때 약속이 가치가 떨어지는 몽구스의 새 릴리스가 제대로 작동하고있었습니다. 내가하려고하는 블루 버드를 사용하는 것이 좋습니다. 다음 코드가 있습니다 :프리 훅이 작동하지 않는 몽구스 저축 계획
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 또는 기본 약속을 사용하면 중요하지 않습니다. "저장", "업데이트", "findOneAndUpdate"후크를 시도했습니다 .... –