egg.js 24.18参数验证

简介: egg.js 24.18参数验证


如下是我的代码

我们需要先下载一个插件
npm i egg-valparams
其次我们修改config中的两个文件
config.js
// 添加一个
// config/plugin.js
exports.valparams = {
  enable : true,
  package: 'egg-valparams'
};
config.defult.js
// config/config.default.js
exports.valparams = {
    locale    : 'zh-cn',
    throwError: true
  };

参数验证参考网址

文件在app/module/error_handle.js

module.exports = ()=>{
    return async function errorHandle(ctx,next){
        try{
            await next();
        }catch(error){
            // 错误日志
            // ctx.app.emit('error',error,ctx);
         
            ctx.status = error.status;
            // 判断参数类型
            if(ctx.status === 422){
                return ctx.body = {
                    msg:'fail',
                    data:error.errors
                }
            }
            ctx.body={
                msg:'fail',
                data:error.mssage
            }
        }
    }
}

还有,app/controller/user.js文件中

async create() {
      const {ctx} = this;
    //   ctx.validate({
    //   username  : {type: 'string', required: false, defValue: 'account', desc: '系统名称'},
    //   password   : {type: 'string', required: true, desc: 'token 验证'},
    //   sex: {type: 'string', required: false, desc: '登录跳转'}
    // });
   
      let params = ctx.request.body;
      // 验证参数
      ctx.validate({
      username  : {type: 'string', required: true, desc: '用户名'},
      password   : {type: 'string', required: true, desc: '密码'},
      sex: {type: 'string', required: true, desc: '性别'}
    });
   
      // 写入数据库
 }

下图是我调试的截图

感谢大家观看,我们下次见

目录
相关文章
|
4天前
|
前端开发 JavaScript
【实现js和css互通、共享常量参数值】js如何获取CSS/SCSS/LESS的常量、CSS/SCSS/LESS又是如何获取js的值(或者说js是如何主动推送参数给CSS使用的)?
【实现js和css互通、共享常量参数值】js如何获取CSS/SCSS/LESS的常量、CSS/SCSS/LESS又是如何获取js的值(或者说js是如何主动推送参数给CSS使用的)?
|
4天前
|
JavaScript 前端开发 API
js截取图片地址后面的参数和在路径中截取文件名或后缀名
在处理网页上的图片资源或者其他类型的文件资源时,你可能会遇到需要使用这些技巧的情况。以下是一些具体的使用场景:
24 0
|
2天前
|
移动开发 前端开发 JavaScript
Vue2 系列:vue.config.js 参数配置
Vue2 系列:vue.config.js 参数配置
11 2
|
4天前
|
JavaScript
如何在JS中实现修改URL参数而不刷新页面
如何在JS中实现修改URL参数而不刷新页面
|
4天前
|
JavaScript 前端开发
【专栏】`Function.prototype.apply` 在JavaScript中用于动态设定函数上下文(`this`)和参数列表
【4月更文挑战第29天】`Function.prototype.apply` 在JavaScript中用于动态设定函数上下文(`this`)和参数列表。它接受两个参数:上下文对象和参数数组。理解`apply`有助于深入JS运行机制。文章分三部分探讨其原理:基本概念和用法、工作原理详解、实际应用与注意事项。在应用中要注意性能、参数类型和兼容性问题。`apply`可用于动态改变上下文、传递参数数组,甚至模拟其他语言的调用方式。通过深入理解`apply`,能提升代码质量和效率。
|
4天前
|
存储 JavaScript 前端开发
每日一道javascript面试题(九)函数的参数可以和函数体中的变量重名吗
每日一道javascript面试题(九)函数的参数可以和函数体中的变量重名吗
|
4天前
|
存储 JavaScript 前端开发
js原生方法,获取url上面所有参数,并返回一个对象
JavaScript函数`getUrlParameters`用于从URL中提取所有参数并返回一个键值对对象。它接收URL,分割查询字符串,解码参数对,并存储在对象中。重复参数键会被存储为数组。
|
4天前
|
JavaScript
js如何实现修改URL参数并不刷新页面
js如何实现修改URL参数并不刷新页面
|
4天前
|
JavaScript
【归总】原生js操作浏览器hash、url参数参数获取/修改方法合集
【归总】原生js操作浏览器hash、url参数参数获取/修改方法合集
|
4天前
|
JavaScript 前端开发
为 setTimeout 或 setInterval 提供一个字符串作为第一个参数(js的问题)
为 setTimeout 或 setInterval 提供一个字符串作为第一个参数(js的问题)
11 0