Appearance
koa-parameter
简介
koa-parameter 是一个用于参数验证的 Koa 中间件,它可以帮助你验证请求参数的类型和格式,确保接收到的数据符合预期的格式和规则。
安装
bash
npm install koa-parameter基本使用
javascript
const Koa = require('koa');
const parameter = require('koa-parameter');
const app = new Koa();
// 注册中间件
app.use(parameter(app));
// 在路由中使用
app.use(async ctx => {
// 验证请求体参数
ctx.verifyParams({
name: { type: 'string', required: true },
age: { type: 'number', required: false },
email: { type: 'email', required: true }
});
ctx.body = { success: true };
});配置选项
translate: 自定义错误消息的翻译函数validateRoot: 是否验证根对象,默认为 trueconvert: 是否自动转换参数类型,默认为 truethrowError: 是否抛出验证错误,默认为 true
支持的数据类型
- string: 字符串
- number: 数字
- boolean: 布尔值
- object: 对象
- array: 数组
- email: 电子邮件
- password: 密码
- url: URL地址
- enum: 枚举值
- date: 日期
高级用法
javascript
app.use(async ctx => {
// 复杂对象验证
ctx.verifyParams({
user: {
type: 'object',
required: true,
rule: {
name: 'string',
age: { type: 'number', min: 0, max: 120 },
email: 'email',
role: { type: 'enum', values: ['admin', 'user'] }
}
},
tags: {
type: 'array',
itemType: 'string',
required: false
}
});
});注意事项
- 在使用参数验证前,确保已经正确解析了请求体(如使用 koa-bodyparser)
- 验证失败时会抛出 422 状态码的错误
- 建议在业务逻辑处理前进行参数验证
- 可以通过自定义错误处理中间件来统一处理验证错误
- 对于复杂的验证逻辑,可以使用自定义验证函数