node-input-validator是什么?
简称NIV用于node.js的验证库使用它可以扩展库以添加自定义规则。npmNIV文档
使用方法
我们以strapi9版本项目为例,来试用一下它对我们接口的校验规则
下载依赖
npm i node-input-validator
在项目中创建全局中间件
使用命令创建
npx strapi generate
设置中间件名字,以及所属
直接手动创建也可以,我们就在项目下创建这个文件,路径:srcmiddlewaresvalidate.js
编写中间件代码
"use strict";
const niv = require("node-input-validator");
/**
* `validate` middleware
*/
module.exports = (config, { strapi }) => {
return niv.koa()
// 中间件代码写法示例
// return async (ctx, next) => {
// strapi.log.info("In validate middleware.");
// await next();
// };
};
注册中间件
module.exports = [
"global::validate",
];
给已经存在的接口添加单独的接口参数校验
PS C:Users est-api> npx strapi generate
? Strapi Generators middleware - Generate a middleware for an API
? Middleware name validate
? Where do you want to add this middleware? Add middleware to an existing API
? Which API is this for? test-api
√ ++ api est-apimiddlewaresvalidate.js
添加参数校验逻辑
"use strict";
/**
* `validate` middleware
*/
module.exports = (config, { strapi }) => {
return async (ctx, next) => {
await ctx.validate({
xiaojin:"required", // 需要这个参数
test: "required", // 需要这个参数
}, ctx.query)
await next();
};
};
路由中间件校验配置
module.exports = {
routes: [
{
method: "GET",
path: "/test",
handler: "cloud.test",
config: {
policies: [],
middlewares: ["api::test-api.validate"],
},
},
],
};
接口调用测试
大功告成~
我们试一下添加参数访问接口
今天就写到这里啦~
小伙伴们,ゝ我们明天再见啦~~大家要天天开心哦
欢迎大家指出文章需要改正之处~学无止境,合作共赢
欢迎路过的小哥哥小姐姐们提出更好的意见哇~~
文章为作者独立观点,不代表股票交易接口观点