エクスプレスバリデーターを使用してフォームを検証しています...エラーが発生した場合、フォームの送信を停止してログインページに戻るための最良の方法は何ですか。これは私が持っているものであり、これを処理するための最良の方法を探しているだけです(returnステートメントについてはわかりません)。
//routes/index.js
exports.login.post = function(req, res){
req.assert('username', 'Please enter username').notEmpty();
req.assert('password', 'Please enter password').notEmpty();
res.locals.errors = req.validationErrors(true);
if ( res.locals.errors ) {
console.log(res.locals.errors);
var d = { title: 'Login' };
res.render('login', { d: d });
return;
}
//do login here if no errors
};
また、フォームテンプレート(ejs)で元の値を取得する方法もわかりません。
req.paramを渡してみましたが、空です。
errオブジェクトにはエラーのあるフィールドしかないため、usernameを入力し、パスワードを空白のままにすると、ユーザー名ではなくerrオブジェクトでのみパスワードを取得します...したがって、req.param.usernameが必要ですが、{q: req.param}を使用し、<%= inspect(q)%>を使用します。これは空です。
更新: req.bodyは、フォームに事前入力するための元の投稿パラメーターを提供します。したがって、優れたエクスペリエンスを得るには、errスタックとreq.bodyスタックが必要です。