[Koa2 系列 07] Koa-router(上)- 基礎使用

[Koa2 系列 07] Koa-router(上)- 基礎使用

路由這種東西,當然是一定有輪子
這次要用的是最多人用的一種路由中間件: koa-router

安裝中間件

npm 大法,不解釋了

npm install --save koa-router

基礎範例

在安裝好後我們直接用範例說明

const Koa = require('koa')
const Router = require('koa-router')

const app = new Koa()
const router = new Router()

router.get('/', function (ctx, next) {
    ctx.body = "Index page"
})
.get('/todo',(ctx,next)=>{
    ctx.body = "Todo page"
})

app
  .use(router.routes())
  .use(router.allowedMethods())
  
app.listen(3000, () => {
   console.log('starting at port 3000')
})

前面幾行引入跟初始化物件應該不用多做說明
router.get 這個方法,跟 Laravel 是真的像,看起來真熟悉
對應的是方法 get 後面接上的是網址路徑
因為是基礎範例,所以就先都用 get 方法來展示

而最後的監聽 3000 port 也是做好幾遍了,也不多說明

主要的重點是 app.use 內的東東

use(router.routes())

就跟前面使用 koa-bodyparser 中間件一樣
我們必須將這個輪子在服務裡呼叫才能啟動

use(router.allowedMethods())

這其實是一個全域的定義
若是你路由定義的是 post 方法,但你用 get 請求,或是錯誤的路由方法
則會自動的補齊 response 的 header 回傳 405 Method Not Allowed
或是 501 Not Implemented 等訊息
若不加入這段,則只會返回 Not Found 在內文中

這篇關於 koa-router 的基本用法就到這,下一篇來說說層級
有後端經驗的人應該會得心應手,沒有的人 …
我也不知道怎麼辦,我原本就是後端啊(攤手)

留言