• 跟我一起了解koa(二)


    koa中路由动态传值
    1.路由
    路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等)
    组成的,涉及到应用如何响应客户端对某个网站节点的访问。
    通俗的讲:路由就是根据不同的 URL 地址,加载不同的页面实现不同的功能。
    2.安装对应的 koa-router 路由模块

    cnpm install --save koa
    cnpm install koa-router --save
    

    3.在app.js写入

    //引入 koa模块
    
    var Koa=require('koa');
    
    var Router = require('koa-router');
    
    //实例化
    var app=new Koa();
    
    var router = new Router();
    //配置路由
    router.get('/',async (ctx)=>{
        ctx.body = '首页'
    }).get('/news',async(ctx)=>{
        ctx.body = '这是一个新闻页面'
    })
    // 作用: 这是官方文档的推荐用法,我们可以
    // 看到 router.allowedMethods()用在了路由匹配 router.routes()之后,所以在当所有
    // 路由中间件最后调用.此时根据 ctx.status 设置 response 响应头
    app.use(router.routes());   /*启动路由*/
    app.use(router.allowedMethods());
    
    app.listen(3000)
    

    运行项目,页面效果为

    我们使用另外一种方法重写路由

    //app1.js
    var Koa =require('koa')
    var router = require('koa-router')()/*引入是实例化路由*/
    var app = new Koa()
    router.get('/',async(ctx)=>{
        ctx.body = "首页"
    })
    router.get('/news',async(ctx)=>{
        ctx.body = "新闻列表页面"
    })
    router.get('/newscontent',async (ctx)=>{
        ctx.body = "新闻详情"
    })
    app.use(router.routes());//启动路由
    app.use(router.allowedMethods())
    app.listen(3002)
    

    效果如下

    使用get方法进行动态路由传值

    //app3.js
    //引入koa模块
    var Koa = require('koa')
    var router = require('koa-router')()
    var app = new Koa()
    router.get('/',async (ctx)=>{
        ctx.body = '首页'
    })
    router.get('/news',async (ctx)=>{
        ctx.body = '新闻列表页面'
    })
    // 获取get传值
    //http://localhost:3002/newscontent?aid=123
    router.get('/newscontent/:aid/:cid',async (ctx)=>{
        console.log('params',ctx.params)
        console.log(ctx.query);
        console.log(ctx.querystring)
        console.log(ctx.url)
        console.log(ctx.request.url);
        console.log(ctx.request.query);   //{ aid: '123', name: 'zhangsan' }  对象
        console.log(ctx.request.querystring);   //aid=123&name=zhangsan
        ctx.body = "新闻详情"
    })
    app.use(router.routes());   /*启动路由*/
    app.use(router.allowedMethods());
    app.listen(3003);
    

  • 相关阅读:
    Java经典编程题50道之四十一
    Java经典编程题50道之四十
    Java经典编程题50道之三十九
    Java经典编程题50道之三十八
    Java经典编程题50道之三十七
    Java经典编程题50道之三十六
    Java经典编程题50道之三十五
    前端学习之路之CSS (一)
    Numpy 01
    Python3 urllib 与 Python2 urllib的变化
  • 原文地址:https://www.cnblogs.com/smart-girl/p/11195175.html
Copyright © 2020-2023  润新知