nodejs的koa传参校验的手搓"/>
nodejs的koa传参校验的手搓
第三方的有点搞不懂怎么写的,所以需要手搓一个来尝试一下
我的网站
场景说明:
像是下面这个路由入入口:
/*** token解析用户信息*/
router.post('/loginByToken',userS.getInfoByToken)
你这里的中间件可能会有多个,那么你可以在第一个中间件的文件入口处进行参数校验:
example:
async getInfoByToken(ctx) {if (!verify(ctx, {require: ["token"]})) {ctx.body = tokenNotExist;return false;}const {token} = ctx.request.body;const user = jwt.verify(token, salt);console.log(user);ctx.body = {code: 200,success: true,message: "获取用户信息成功",result: user};}
这里使用的就是:!verify(ctx, {require: ["token"]})
来进行校验
不通过校验,返回false,并且在失败时,直接返回失败的提示信息tokenNotExist
成功则继续进行
其中require
传入的是个Array,是ctx.request.body中必须携带的参数,如果有参数不存在,则不通过,返回false
verify的具体实现代码:
const verify = (ctx, verifyObj) => {const requireList = verifyObj.require;const result = [];requireList.forEach(item => {if (!ctx.request.body[item]) {result.push(`缺少${item}参数`);}});return result.length === 0;
};
module.exports = {verify
};
更多推荐
nodejs的koa传参校验的手搓
发布评论