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

本站公众号
   欢迎关注本站公众号,获取更多信息