egg.js基本用法

4881 ワード

EggはKoaをベースフレームワークとして選択し,そのモデルに基づいてさらにいくつかの強化を行った.eggは指定したディレクトリ構造に従ってwebサービスを構築する.
プロジェクトの初期化
$ mkdir egg-example
$ cd egg-example
$ npm init
$ npm i egg --save
$ npm i egg-bin --save-dev

研究開発体験を向上させるために、ローカルで開発、デバッグ、ユニットテストなどを容易に行うことができます.ここではegg-binモジュールを使用する必要があります.まず、egg-binモジュールをdevDependenciesとして導入する必要があります.npm scriptsからpackage.jsonを追加します.
{
  "scripts": {
    "dev": "egg-bin dev"
  }
}

これにより、npm run devコマンドでアプリケーションを起動できます.
ディレクトリ構造
egg-example
├── app
│   ├── controller
│   │   └── home.js
│   └── router.js
├── config
│   └── config.default.js
└── package.json

Cookieでは復号化とチェックアウトを使用する必要があるため、暗号化のために鍵を構成する必要があります.config/config.default.js
module.exports = {
  keys: 'key1,key2',
};

Controllerの作成
Web開発やMVCに詳しい方は、ControllerとRouterが最初に書く必要があると思います.
// app/controller/home.js
const Controller = require('egg').Controller;

class HomeController extends Controller {
  async index() {
    this.ctx.body = 'Hello world';
  }
}

module.exports = HomeController;

ルーティングマッピングの構成:
// app/router.js
module.exports = app => {
  const { router, controller } = app;
  router.get('/', controller.home.index);
};

簡単に言えば、Controllerはユーザーの入力を解析し、処理後に相応の結果を返します.
共通API
  • this.ctx.curlは、ネットワーク呼び出しを開始する.
  • は、ctx.set(key, value)の方法により、応答ヘッダ
  • を設定することができる.
  • ctx.get(name)要求ヘッダのフィールドの値を取得します.このフィールドが存在しない場合、空の文字列が返されます.

  • 公式ドキュメント