私はNodejsとMongooseを初めて使用していますが、約束されていないmongooseの新リリースまではうまくいきました。私がしようとしているブルーバードの使用をお勧めします。私は次のコードを持っています:PreHookが動作しない状態で節約するスキーム
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を持っています。ブルーバードやネイティブ・プロミスを使用するかどうかは関係ありません。 "save"、 "update"、 "findOneAndUpdate"フックを試してみました.... –