原由
之前的《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"
}
至此第一個項目啓動就正常了。至於原理,需要多看問文檔。