Koaパラメータ検証フレームワーク調査
7672 ワード
現状
以前はjavaで書かれたwebプログラムでしたが、今引き継いだプロジェクトはnodejsで書かれています.比較的古いシステムなので、以前使っていたkoa 2-validatorをパラメータ検証ツールとして使っていましたが、結果的に今はこの依存は直接利用できません.以下の図
調査研究 koa-validateは3年前から更新されていません.誰もメンテナンスしていないものは を使わないでください. koa-middle-validator、これは悪くないですが、最近の更新は5ヶ月前で、例を見ても悪くありません.しかし、このライブラリに注目する人は少なすぎて、問題が発生すると面倒になります.ソースコードを見て、著者の簡単な本に書いたチュートリアルを添付します. node-input-validator、ユーザーが少なく、オープンソースではありません 推奨koa-parameterはパラメータ検証フレームワークparameterに基づいてkoaフレームワークに適した を行う.
使用例
簡単な例を添付します
公式サポートのルール
カスタム規則
koa-parameterはparameterに基づいているので、カプセル化されているだけで、下位論理はparameterに従っているので、カスタムルールはparameterの公式説明と例を参照して書くことができます.
以前はjavaで書かれたwebプログラムでしたが、今引き継いだプロジェクトはnodejsで書かれています.比較的古いシステムなので、以前使っていたkoa 2-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の公式説明と例を参照して書くことができます.