這是在講關於一名叫 Koa 的全端勇士傳說-koa-router

前言

在 koa 一樣會透過一個叫 koa-router 的套件來實作 router,撰寫上其實與 Express 差不多,但是會有一些小地方不同,所以這邊就來記錄一下

起手式

想當然要使用 koa-router 之前必須先安裝套件

1
npm install --save koa-router

使用方式

安裝完畢後,就可以準備引入使用,但是要注意記得使用 new 來建立 Router

1
2
3
4
5
6
const Router = require('koa-router');
const router = new Router();

router.get('/',async (ctx, next) => {
ctx.body = 'Hello Koa-Router';
});

那麼就可以輸入 node app.js 打開瀏覽器看看是否已經成功,但是你會發現還是失敗

Not Found

那是因為還缺少兩行,只要補上這兩行即可

1
2
app.use(router.routes());
app.use(router.allowedMethods()); // 這是官方所推薦的方法,我嘗試過不加入也可以正常運作(???

Hello Koa-Router

那這兩行的意思是什麼?

  • app.use(router.routes()); - 啟用 router
  • app.use(router.allowedMethods()); - 簡單來講就是允許的接口,如果本來是 GET,可是你卻 POST 那麼就會返回錯誤的概念

allowedMethods 比較好的解釋 參考連結

其他類型 router

另外最後補充 koa 的 router 方法有哪些

  • get
  • post
  • put
  • delete
  • all

寫法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
router.get('/' async (ctx,next) => {
...
})

router.post('/' async (ctx,next) => {
...
})
router.put('/' async (ctx,next) => {
...
})
router.delete('/' async (ctx,next) => {
...
})

router.all('/' async (ctx,next) => {
...
})

前面四種 getpostputdelete 就不多說,大致上都知道

這邊主要要講的是 allall 這個 router 意旨上面四種 Methods 都可以接受的意思

0%