登録フォームとログインフォームには、サーバー側の検証ロジックが必要です。私は、クライアント上の各入力ブロックのメッセージを表示する最善の方法を考え出したいと思います。Expressを使用してNode.jsアプリケーションでフォーム検証エラーを表示する最良の方法は?
アプリケーションフロー:
- クライアント側のフォーム私は傾いていステップ1
でフォームをレンダリングされたビューにノード
req.flash()
が必要ですが、これにはもっとOOPのアプローチがありますか?登録フォームとログインフォームには、サーバー側の検証ロジックが必要です。私は、クライアント上の各入力ブロックのメッセージを表示する最善の方法を考え出したいと思います。Expressを使用してNode.jsアプリケーションでフォーム検証エラーを表示する最良の方法は?
アプリケーションフロー:
でフォームをレンダリングされたビューにノード
req.flash()
が必要ですが、これにはもっとOOPのアプローチがありますか?私は、フォームデータを検証する検証ミドルウェアを持っています。検証が失敗した場合にどのフォームを再レンダリングするかをミドルウェアに伝えることができ、フィールドの名前とフィールドのエラー配列を持つエラーオブジェクトが生成されます。
私のフォームはこのように見える終わる:
include ../mixins/form-helpers
mixin errors()
form(action=url('messages_create'), method='post')
mixin csrf()
fieldset
legend contact
mixin field('text', 'subject', 'Subject')
mixin field('textarea', 'message', 'Message')
.form-actions
mixin submit('Send')
私は件名とメッセージを表示せずにこのフォームを投稿する場合、私は、次のオブジェクトを設定します。私は私の失敗フィールドに赤い枠を追加できるように
var errors = { subject: ['is required'], message: ['is required'] };
マイエラーのミックスインは、すべてのエラーとエラークラスを追加します、私のフィールドのミックスインをレンダリングします。
チェックアウトValidity入力フィールドを作成して適切にレンダリングするための検証とエラーを付加するために特別に設計されています。
+1 for 'req.flash()' – pkyeck
この問題は、AJAX検証のためのクライアントサイドスクリプトを持つノードモジュールを作成するよう促しました。この考え方は、フォームフィールドを、mongooseスキーマと同様に、つまり検証ルールを使ってサーバー上にセットアップすることです。クライアント側のコードが動的に生成され、jQueryの変更リスナーとフォーム提出を処理して、送信前に検証します。フォームは 'req.body'(本体パーサーを使用している場合)を介して通常の方法でアクセスされます –