ホームページ >ウェブフロントエンド >jsチュートリアル >node.jsおよびexpressを使用したフォーム、ファイルアップロード、セキュリティ
この記事では、node.jsおよびExpressに安全で機能的なHTMLフォームを構築し、Get and Post Requestの処理、入力検証、消毒、およびファイルアップロードをカバーしています。 段階的にプロセスを調べてみましょう
フォームの処理には通常、空のフォーム(Get Request)の表示、ユーザーデータの受信(投稿要求)、クライアント側、およびサーバー側の検証、エラー(無効な場合)でフォームを再配置し、有効なデータの処理、ユーザーのリダイレクト。 セキュリティは最も重要であり、HTTPS、CSRFおよびXSS攻撃に対する保護、および綿密な入力消毒を必要とします。
重要な概念:
express&node.js:
express-validator
csurf
helmet
multer
express-flash
(リクエストを取得):
/contact
ミドルウェアは、投稿データにアクセスするために重要です。 contact.ejs
ポストルートはフォームの提出を処理します:
検証:
必要なフィールドと有効な電子メール形式をチェックします。 body-parser
および/contact
は例です。
express-validator
入力をクリーンアップします。 check('message').isLength({ min: 1 }).withMessage('Message is required').trim()
サニタイズされたデータを取得します。check('email').isEmail().withMessage('Invalid email').bail().trim().normalizeEmail()
trim()
成功:normalizeEmail()
有効な場合、データが記録されている場合(電子メールまたはデータベースストレージの送信を検討してください)、フラッシュメッセージが設定され、ユーザーはmatchedData(req)
。csurf
ミドルウェアは、csrfトークンを生成および検証します。ファイルアップロード:
ミドルウェアはファイルのアップロードを処理します。 フォームのmulter
属性はenctype
に設定する必要があります。 "multipart/form-data"
メモリにアップロードされたファイルを保存します(大きなファイルのディスクストレージを検討してください)。 エラー処理とファイルストレージ(たとえば、AWS S3のようなクラウドストレージ)は追加の考慮事項です。
multer.memoryStorage()
この記事は、次のような追加の手順を提案しています
nodemailerを使用して電子メールを送信します。
データベースへのデータの永続化。以上がnode.jsおよびexpressを使用したフォーム、ファイルアップロード、セキュリティの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。