前言
在使用 Express.js 进行开发时,我们难免要处理请求参数的问题。如何解析参数,如何校验参数的正确性,这些都是前端工程师需要掌握的技能。本文将会详细介绍 Express.js 的参数解析与校验,并提供示例代码进行演示。
Express.js 参数解析
Express.js 中内置了多种中间件来解析请求参数,如 body-parser
、cookie-parser
等等。这里我们以 body-parser
中间件为例子进行介绍。
body-parser
中间件可以解析 POST、PUT、DELETE 等请求方法的请求体,并把解析后的数据绑定到 req.body
上。使用方法如下:
const express = require('express') const bodyParser = require('body-parser') const app = express() // 解析 application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) // 解析 application/json app.use(bodyParser.json())
以上代码将 body-parser
中间件挂载到了 Express.js 应用程序上,并对 application/x-www-form-urlencoded
和 application/json
两种请求格式进行了解析,解析结果分别保存在 req.body
中。
Express.js 参数校验
我们经常会遇到参数校验的场景,比如校验手机号码格式、邮箱格式,检查传入的是不是数字等等。如何在 Express.js 中完成这些校验呢?这里我们推荐使用 express-validator
库。
express-validator
库具有易用性和可扩展性,支持自定义校验函数、多语言支持等特性。使用方法如下:
const express = require('express') const { check, validationResult } = require('express-validator') const app = express() app.post('/user', [ check('username').notEmpty(), check('email').isEmail(), check('age').isInt() ], (req, res) => { const errors = validationResult(req) if (!errors.isEmpty()) { return res.status(400).json({ errors: errors.array() }) } // 业务逻辑代码 })
以上代码中,我们对 /user
接口的参数进行了校验,要求 username
字段不能为空,email
字段必须符合邮箱格式,age
字段必须是整数。使用 validationResult(req)
函数检查校验结果是否有误,如果有误则返回 errors
数组。最后根据检验结果返回不同的响应。
总结
Express.js 提供了许多内置中间件来帮助开发者解析和校验请求参数,并且支持自定义校验函数。开发者可以根据自身的业务需求选择合适的校验方式,提高代码的健壮性和可维护性。
代码示例:Github
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6596e452eb4cecbf2da968a0