>本文演示了node.js和Express中構建安全且功能性的HTML表單,涵蓋並發布請求處理,輸入驗證,消毒和文件上傳。 讓我們逐步探索過程。
>
>表單處理通常涉及:顯示一個空表單(獲取請求),接收用戶數據(發布請求),客戶端和服務器端驗證,用錯誤重新播放表單(如果無效),處理有效的數據,並重定向用戶。 安全至關重要,需要HTTPS,保護CSRF和XSS攻擊以及細緻的輸入消毒。
密鑰概念:
express-validator
:用於驗證和消毒用戶輸入的中間件,防止安全漏洞。 csurf
&helmet
:CSRF和XSS保護的中間件。 multer
:用於處理文件的中間件安全地上傳。
express-flash
>
設置:
確保Node.js(版本8.9.0或更高版本)已安裝。 啟動代碼(在GitHub上可用)提供了帶有EJS模板和錯誤處理的基本快遞設置。>
>>顯示表單(獲取請求):
),允許用戶輸入消息和電子郵件地址。 /contact
contact.ejs
> 中間件對於訪問帖子數據至關重要。
郵政路線手柄表單提交形式:
body-parser
/contact
>
express-validator
check('message').isLength({ min: 1 }).withMessage('Message is required').trim()
> sanitization:check('email').isEmail().withMessage('Invalid email').bail().trim().normalizeEmail()
trim()
normalizeEmail()
>matchedData(req)
錯誤處理:/
csurf
屬性設置為。 >將上傳的文件存儲在內存中(考慮較大文件的磁盤存儲)。 錯誤處理和文件存儲(例如,到諸如AWS S3之類的雲存儲)是其他考慮因素。
>multer
進一步的增強:enctype
"multipart/form-data"
本文提出了其他步驟,例如:multer.memoryStorage()
>使用NodeMailer發送電子郵件。 將數據持續到數據庫。
>實現更強大的文件上傳處理(臨時存儲,縮略圖顯示,端端文件刪除)。
>以上是表單,檔案上傳和使用node.js和Express的詳細內容。更多資訊請關注PHP中文網其他相關文章!