ExpressとMongooseを使用して、ユーザー入力の検証を行おうとしています。以前は、ユーザーモデルの「パスワード」フィールドに「最小長」バリデーターを直接設定していました。入力されたパスワード文字列が十分に長いことを確認し、そうでない場合は、ユーザーを保存しようとしたときに作成されたValidationErrorオブジェクトに渡されます。これはユーザーに返送され、適切なフォームフィールドに表示されます。
しかし、ハッシュ、ソルト、暗号化を実装したので、これは正しく機能しません。パスワードのハッシュバージョンは、元のパスワードよりもはるかに長くなります。だから私はこのようなことをすることができると思いました:
exports.createNewUser = function(req, res, next){
var user = new User({
email : req.body.email
, name : req.body.name
})
, minLength = Validator.minLength(req.body.password);
if (!minLength) return next(new Error('Password aint right length'));
user.setPassword(req.body.password);
user.save(function(err){
if (!err) return res.redirect('/');
else {
console.log('error saving usr', err);
err['body'] = req.body;
return res.render('user/register', err);
}
});
};
問題はそれです
return next(new Error('err message'));
単にコンソールに表示されます。マングースの検証エラーオブジェクトにアタッチする方法が必要です。何か案は?