koa-router

爲了處理URL,咱們須要引入koa-router這個middleware,讓它負責處理URL映射。php

咱們把上一節的hello-koa工程複製一份,重命名爲url-koanpm

先在package.json中添加依賴項:json

"koa-router": "7.0.0"

而後用npm install安裝。app

或者在項目中使用 npm i koa-routerkoa

接下來,咱們修改app.js,使用koa-router來處理URL:async

const Koa = require('koa');

// 注意require('koa-router')返回的是函數:
const router = require('koa-router')();

const app = new Koa();

// log request URL:
app.use(async (ctx, next) => {
    console.log(`Process ${ctx.request.method} ${ctx.request.url}...`);
    await next();
});

// add url-route:
router.get('/hello/:name', async (ctx, next) => {
    var name = ctx.params.name;
    ctx.response.body = `<h1>Hello, ${name}!</h1>`;
});

router.get('/', async (ctx, next) => {
    ctx.response.body = '<h1>Index</h1>';
});

// add router middleware:
app.use(router.routes());

app.listen(3000);
console.log('app started at port 3000...');

 

注意導入koa-router的語句最後的()是函數調用:函數

const router = require('koa-router')(); 

至關於:測試

const fn_router = require('koa-router'); const router = fn_router(); 

而後,咱們使用router.get('/path', async fn)來註冊一個GET請求。能夠在請求路徑中使用帶變量的/hello/:name,變量能夠經過ctx.params.name訪問。ui

再運行app.js,咱們就能夠測試不一樣的URL:url

輸入首頁:http://localhost:3000/

url-index

輸入:http://localhost:3000/hello/koa

url-hello

本站公眾號
   歡迎關注本站公眾號,獲取更多信息