美文网首页koa2
第02讲 koa2路由

第02讲 koa2路由

作者: 谢炳南 | 来源:发表于2018-05-05 21:27 被阅读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('启动成功');
    });
    

    相关文章

      网友评论

        本文标题:第02讲 koa2路由

        本文链接:https://www.haomeiwen.com/subject/azeerftx.html