アプリケーションを作成して保存するnode.jsの非常に単純なアプリケーションでテストしています。newPost 関数を使用して投稿フォームを表示し、savePost メソッドでデータを含む投稿を受け取ります。後者では(iformモジュールを使用して)検証を行い、以前と同じページを再度表示したいのですが、フォームにユーザーから送信されたデータと見つかったエラーを入力します。
私はこのような同様のコードを持っています。エラーが見つかった場合は、同じ jade ページをレンダリングします。ユーザーがF5を押したときに投稿リクエストを再度送信したくないので、パターンリダイレクトを適用してそこに到達したいのですが、機能します。
では、ポストリダイレクトを作成し、エラーを追加して受け取ったすべてのパラメーターを渡すポストメソッドから取得する通常の方法はどうですか? そうするのに役立つモジュールはありますか?
var prepareObject = function(req, res){
var errors = {};
if('iform' in req){
errors = req.iform.errors;
}
return {title: 'Nuevo Post', body:req.body, errors: errors};
};
// mapped as /newPost (type GET)
exports.newPost = function(req, res){
//show form to create post
res.render('newPost', prepareObject(req, res));
}
// mapped as /savePost (type POST)
exports.savePost = function(req, res){
if(req.iform.errors) {
//there are errors: show form again to correct errors
res.render('newPost', prepareObject(req, res));
}else{
//no errors: show posts
res.redirect('/posts');
}
}