<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ### egg-validate-plus 使用 文檔:https://github.com/temool/egg-validate-plus `rules`中規則的編寫,參見[async-validator](https://github.com/yiminghe/async-validator)中驗證規則的編寫 ### 開啟插件 ~~~ // config/plugin.{env}.js exports.validatePlus = { enable: true, package: 'egg-validate-plus', }; ~~~ ### 配置插件 ~~~ // config/config.{env}.js config.validatePlus = { resolveError(ctx, errors) { if (errors.length) { ctx.type = 'json'; ctx.status = 400; ctx.body = { code: 400, error: errors, message: '參數錯誤', }; } } }; ~~~ ### 使用插件 ~~~ |- MY-PROJECT |- app |- controller |- user.js |- post.js |- rules |- user |- login.js [用戶登錄參數校驗規則] |- post |- add.js [創建 post 參數校驗規則] |- config |- config.default.js |- plugin.js |- package.json |- README.md ~~~ #### 規則的傳入方式 ##### [](https://github.com/temool/egg-validate-plus#1傳入字符串)1.傳入字符串 ~~~js // app/controller/xx.js const { query } = this.ctx.request; // 拿到驗證結果 const validateResult = await this.ctx.validate('user.login', query) // 驗證不通過時,阻止后面的代碼執行 if (!validateResult) return ~~~ 注意:不要帶上 rules ##### [](https://github.com/temool/egg-validate-plus#2直接傳入驗證規則對象)2.直接傳入驗證規則對象 ~~~js // app/controller/xx.js // 直接引入 rules 文件下的驗證規則,也可以是自己寫的驗證規則對象 const rule = this.app.rules.user.login // 數據格式 // const rule = { // id: [ // { required: true }, // { type: 'number', message: 'id 必須為數字 } // ], // password: [ // { required: true }, // { type: 'string', message: 'password 必須為字符串 } // ] // } // 從客戶端傳入的參數 const { query } = this.ctx.request; // 數據格式: // query = { // username: 123456, // password: 'abcdefg' // } // 拿到驗證結果 const validateResult = await this.ctx.validate(rule, query) // 驗證不通過時,阻止后面的代碼執行 if (!validateResult) return ~~~ #### 添加signIn.js規則 ``` 'use strict'; const rule = { email: [ { required: true, message: '郵箱不能為空' }, { type: 'email', message: '郵箱格式不正確' }, ], password: [ { required: true, message: '密碼不能為空' }, { type: 'string', message: '密碼字段需要是字符串' }, { // eslint-disable-next-line no-unused-vars validator(rule, value, callback, source, options) { const pattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/; if (pattern.test(value)) { callback(); // 驗證通過 return; } callback({ message: '密碼最少包含一個大小寫字母、數字并且為8-16位' }); // 驗證不通過 }, }, ], }; module.exports = rule; ``` #### controller中login.js使用 ``` 'use strict'; const Controller = require('egg').Controller; class LoginController extends Controller { async loginIn() { const { ctx, app } = this; const { email, password } = ctx.request.body; const validateResult = await ctx.validate('login.signIn', { email, password }); // 第一個參數對應于rules目錄下目錄或文件 if (!validateResult) { return; } const loginInfo = await ctx.service.user.login({ password, email }); // 省略部分代碼 ctx.returnBody(200, '登錄成功', loginInfo.userId); // returnBody方法是基于context的擴展 } } module.exports = LoginController; ``` #### context.js擴展 ``` 'use strict'; module.exports = { returnBody(status, message, data = null) { this.status = status; this.body = { message, data, flag: true, }; }, }; ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看