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: '性别'}
    });
   
      // 写入数据库
 }

下图是我调试的截图

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

目录
相关文章
|
3月前
|
存储 JavaScript 前端开发
账号登录验证(原生js,本地存储)
账号登录验证(原生js,本地存储)
27 0
|
3月前
|
JavaScript
如何在JS中实现修改URL参数而不刷新页面
如何在JS中实现修改URL参数而不刷新页面
62 1
|
4月前
|
JavaScript 数据安全/隐私保护
JS正则验证密码
JS正则验证密码
|
1月前
|
JavaScript 前端开发 API
js截取图片地址后面的参数和在路径中截取文件名或后缀名
在处理网页上的图片资源或者其他类型的文件资源时,你可能会遇到需要使用这些技巧的情况。以下是一些具体的使用场景:
19 0
|
4月前
|
JavaScript
如何在JS中实现修改URL参数而不刷新页面
如何在JS中实现修改URL参数而不刷新页面
|
19天前
|
JavaScript
【归总】原生js操作浏览器hash、url参数参数获取/修改方法合集
【归总】原生js操作浏览器hash、url参数参数获取/修改方法合集
|
23天前
|
JavaScript 前端开发
为 setTimeout 或 setInterval 提供一个字符串作为第一个参数(js的问题)
为 setTimeout 或 setInterval 提供一个字符串作为第一个参数(js的问题)
10 0
|
1月前
|
JavaScript
js开发:请解释什么是ES6的默认参数(default parameters),并给出一个示例。
ES6允许在函数参数中设置默认值,如`function greet(name = 'World') {...}`。当调用函数不传入`name`参数时,它将默认为'World',提升代码简洁性和可读性。例如:`greet()`输出"Hello, World!",`greet('Alice')`输出"Hello, Alice!"。
16 4
|
1月前
|
前端开发 JavaScript
|
1月前
|
JavaScript
JS动态参数arguments与剩余参数
JS动态参数arguments与剩余参数