>本文演示了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中文网其他相关文章!