之前是用java写的web程序,现在接手的一个项目使用nodejs写的,因为是比较老的系统,之前用的koa2-validator作为参数验证工具,结果现在这个依赖现在直接不可用了, 如下图
➜ test git:(master) ✗ npm install koa2-validator@1.1.0
npm ERR! code ENOVERSIONS
npm ERR! No valid versions available for koa2-validator
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/liyi/.npm/_logs/2020-01-03T07_29_26_032Z-debug.log
附上一个简单的例子
const bodyparser = require('koa-bodyparser');
//注意官方例子这里是require('..'), 请把..替换为koa-parameter
const parameter = require('koa-parameter');
const Koa = require('koa');
const app = new Koa();
app.use(bodyparser());
app.use(parameter(app));
app.use(async function (ctx) {
//id、date是框架已有的规则
ctx.verifyParams({
id: 'id',
date: 'date'
});
ctx.body = 'passed';
});
app.listen(3000);
var TYPE_MAP = Parameter.TYPE_MAP = {
number: checkNumber,
int: checkInt,
integer: checkInt,
string: checkString,
id: checkId,
date: checkDate,
dateTime: checkDateTime,
datetime: checkDateTime,
boolean: checkBoolean,
bool: checkBoolean,
array: checkArray,
object: checkObject,
enum: checkEnum,
email: checkEmail,
password: checkPassword,
url: checkUrl,
};
因为koa-parameter是基于parameter的,只是做了一层封装而已,底层逻辑还是按照parameter来的,自定义规则完全可以参照parameter官方说明和示例来编写