eggパラメータチェック

2042 ワード

簡単な紹介egg-router-auth apidocに基づいてパラメータ検証を構築
機能
  • eggプロジェクトでルーティングテーブルに要求urlが含まれているかどうかを検証し、ルーティングテーブルに存在しないルーティングを要求すると、対応する情報
  • が提示される.
  • eggプロジェクトにおいて、許可されたルーティングにユーザのjwtログイン
  • が存在するか否かを検証する.
  • ルーティングを検証するパラメータ
  • インストール
    npm i egg-router-auth --save

    構成関連
    ファイルディレクトリの構成
    ファイルディレクトリをこのように構成することを推奨します
    project
    ├── app
    │   ├── controller
    │   │   └── home.js
    │   └── router.js
    ├── apidoc
    │   └── output
    |       └── api_data.json
    │   └── template
    |       └── api_data.json
    |
    |...

    プラグインを開く
    // config/plugin.js
    exports.auth = {
      enable: true,
      package: 'egg-router-auth',
    };

    コンフィギュレーション
    // config/config.default.js
    config.auth = {
      jwtExclude: ['/api/login', '/api/public/verification'], //              
      errorCode: -2, //    code,
      output: 'apidoc/output', // apidoc    ,  
      template: 'apidoc/template' // apidoc  ,  
    }

    使用
      // app/controller/home.js
      /**
      * @api {GET} /api/test       
      * @apiParam {string} user    
      */
      async test() {
        const { ctx } = this;
        const res = '  ';
        ctx.body = res;
      }
      
      /**
      * @api {GET} /api/test          
      * @apiParam {string|null} user    
      */
      async test1() {
        const { ctx } = this;
        const res = '  ';
        ctx.body = res;
      }
      
      /**
      * @api {GET} /api/test         
      * @apiParam {string} [user]    
      */
      async test2() {
        const { ctx } = this;
        const res = '  ';
        ctx.body = res;
      }
      
      /**
      * @api {GET} /api/test         
      * @apiParam {object} user   
      * @apiParam {string} user.name    
      */
      async test3() {
        const { ctx } = this;
        const res = '  ';
        ctx.body = res;
      }

    質問交換
    egg-router-auth issues非同期で交流してください.