参数验证
插件地址:
https://www.npmjs.com/package/egg-valparams
安装
npm i egg-valparams --save
配置
// config/plugin.js
valparams : {
enable : true,
package: 'egg-valparams'
},
// config/config.default.js
config.valparams = {
locale : 'zh-cn',
throwError: false
};
在控制器里使用
class XXXController extends app.Controller {
// ...
async XXX() {
const { ctx } = this;
ctx.validate({
system: {
type: "string",
required: false,
defValue: "account",
desc: "系统名称",
},
token: { type: "string", required: true, desc: "token 验证" },
redirect: { type: "string", required: false, desc: "登录跳转" },
});
// if (config.throwError === false)
if (ctx.paramErrors) {
// get error infos from `ctx.paramErrors`;
}
let params = ctx.params;
let { query, body } = ctx.request;
// ctx.params = validater.ret.params;
// ctx.request.query = validater.ret.query;
// ctx.request.body = validater.ret.body;
// ...
ctx.body = query;
}
// ...
}