koa2

第02讲 koa2路由

2018-05-05  本文已影响210人  谢炳南

注意

与express不同 - 要单独安装路由模块

npm install koa-router --save
// 引入koa
const koa = require('koa');
const app = new koa();

// 注意:引入的方式
const router = require('koa-router')();

router.get('/',async (ctx)=>{
    ctx.body = 'Hello koa2';
});

router.get('/news',async (ctx)=>{
    ctx.body = '新闻 page';
});

router.get('/newsContent',async (ctx)=>{
    let url = ctx.url;
    // query: 返回格式化好的参数
    // querystring: 返回的是请求字符串
    // 从 request 中获取 GET 请求
    let request = ctx.request;
    let req_query = request.query;
    let req_querystring = request.querystring;
    // 从上下文直接获取
    let ctx_query = ctx.query;
    let ctx_querystring = ctx.querystring;
    ctx.body = {
        url,
        req_query,
        req_querystring,
        ctx_query,
        ctx_querystring
    };
});

// 动态路由(可传递多个值)
router.get('/newsContent/:newsId',async (ctx)=>{
    ctx.body = { params: ctx.params};
});

// 作用:启动路由
app.use(router.routes());
// 作用:这是官方文档的推荐用法,我们可以看到 router.allowedMethords() 用在 router.routes() 之后,
// 所有,在当所有的路由中间件最后使用.此时根据 ctx.status 设置 response 响应头
app.use(router.allowedMethods());
                
// 监听端口
app.listen(3000,function(){
    console.log('启动成功');
});
上一篇下一篇

猜你喜欢

热点阅读