Egg.js (一) 新建第一個項目

原由

之前的《Node.js 學習記錄》採用的Express,由於年久失修,項目啓動都有問題了。所以也懶得再去維護和新增功能了。加之最近兩年使用antd比較多,上面的Egg.js也有所接觸,所以覺得就以這個爲基礎新建項目玩玩。

看文檔

做了這麼多年的開發,遇見問題之前先看文檔,沒有爲什麼。
https://eggjs.org/zh-cn/intro/quickstart.html也不要像個萌新那樣,不懂也不知道差,看視頻的。先看看文檔再想想,思路就清晰了。

新建項目

https://eggjs.org/zh-cn/intro/quickstart.html這裏我就是人工手動搬家。
我們推薦直接使用腳手架,只需幾條簡單指令,即可快速生成項目(npm >=6.1.0):

mkdir egg-example && cd egg-example
npm init egg --type=simple
npm i

啓動項目:

npm run dev
open http://localhost:7001

逐步搭建 這個我不推薦,有興趣的也可以試試。

代碼目錄

在這裏插入圖片描述
剛開始關注app這個目錄即可。

egg-example
├── app
│   ├── controller
│   │   └── home.js
│   └── router.js
├── config
│   └── config.default.js
└── package.json

完整的目錄結構規範參見目錄結構
這裏我們可以在controller裏面寫接口,然後在router.js裏面添加路由。
例如:home.js

'use strict';

const Controller = require('egg').Controller;

class HomeController extends Controller {
  async index() {
    const { ctx } = this;
    ctx.body = {
      params: ctx.params.id // 把接收的參數 返回出去
    }
  }
}

module.exports = HomeController;

router.js

'use strict';

/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller } = app;
  router.get('/home/:id', controller.home.index);
};

瀏覽器訪問:http://localhost:7001/home/12512
輸出:

{
    "params": "12512"
}

至此第一個項目啓動就正常了。至於原理,需要多看問文檔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章