Skip to content
On this page

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: 是否验证根对象,默认为 true
  • convert: 是否自动转换参数类型,默认为 true
  • throwError: 是否抛出验证错误,默认为 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
    }
  });
});

注意事项

  1. 在使用参数验证前,确保已经正确解析了请求体(如使用 koa-bodyparser)
  2. 验证失败时会抛出 422 状态码的错误
  3. 建议在业务逻辑处理前进行参数验证
  4. 可以通过自定义错误处理中间件来统一处理验证错误
  5. 对于复杂的验证逻辑,可以使用自定义验证函数

要保持清醒 永远不抱有意外的幻想 凭空的期待最要命