zoukankan      html  css  js  c++  java
  • 跟我一起了解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);
    

  • 相关阅读:
    事件优先权hdu1873(看病要排队)
    项目包ExpressJS入门指南
    按钮页面ActivityGroup实现Tab效果
    分割范围Codeforces Round #181 (Div. 2)
    随机伪随机随机数字
    数组最小剑指Offer读书笔记之第五章优化时间空间效率
    列字段通用excel导入修改版
    图片区域帧差法识别物体_matlab
    宋体关闭完美退出应用程序
    生成树最小生成树poj 1258 prim
  • 原文地址:https://www.cnblogs.com/smart-girl/p/11195175.html
Copyright © 2011-2022 走看看