zoukankan      html  css  js  c++  java
  • 24

    1- 说明 http express 和 koa 的路由参数分别怎么获取:

       http:  

    get:url.parse(req.url,true).query
        post:
          var queryString=require('queryString')
          var bodyParse=''
          req.on('data',(params)=>{
            bodyParse+=params
          })
          
          req.on('end',(params)=>{
            let {name}=queryString.parse(bodyParse)
            res.end(name)
          })

        express:

    get:
            req.query.xxx
          post:
            var bodyParser=require('body-parser')
            app.use(bodyParser.urlencoded({extends:false}))
            app.post('/add',(req,res)=>{
              let {name}=req.body
              res.send(name)
            })

      koa: 

    koa:
        get:
          ctx.query.xxx
        post:
          var bodyParser=require('body-parser')
          app.use(bodyParser())
          ctx.request.body.xxx

    2-简单说明动态路由:

      在.js文件中设置路由,通过ctx.params方式获取id

    router.get('/content/:id',async (ctx)=>{
        console.log(ctx.params);
    })

      比如输入http://localhost:8000/content/2,可以获得
      console.log(ctx.params); //{ id: ‘2’ }

    3-说明 express 和 koa 的中间件的使用:

    写next()程序未执行玩继续往下执行,未写则程序停止执行.

    4-简述 koa 的洋葱圈模型:

    const Koa = require('koa');
    const app = new Koa();
    
    app.use(async (ctx, next) => {
        console.log(1);
        await next();
        console.log(6);
    });
    
    app.use(async (ctx, next) => {
        console.log(2);
        await next();
        console.log(5);
    });
    
    app.use(async (ctx, next) => {
        console.log(3);
        ctx.body = "hello world";
        console.log(4);
    });
    
    app.listen(3000, () => {
        console.log('listenning on 3000');
    });

    最后输出 为 1,2 ,3,4,5,6在await 实现next()执行到下一步
    跳过还未处理的代码,只有下一步完成时候再开始进行处理本级需要处理的代码

    5-扩展:了解 websocket:

    WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)
    首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已.

    有交集,但是并不是全部。

    有交集,但是并不是全部。
    另外Html5是指的一系列新的API,或者说新规范,新技术。Http协议本身只有1.0和1.1,而且跟Html本身没有直接关系。。
    通俗来说,你可以用HTTP协议传输非Html数据,就是这样=。=
    再简单来说,层级不一样。

       Websocket是什么样的协议,具体有什么优点:

       首先,Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说。
    简单的举个例子吧,用目前应用比较广泛的PHP生命周期来解释。
    1) HTTP的生命周期通过Request来界定,也就是一个Request 一个Response,那么在HTTP1.0中,这次HTTP请求就结束了。
    在HTTP1.1中进行了改进,使得有一个keep-alive,也就是说,在一个HTTP连接中,可以发送多个Request,接收多个Response。
    但是请记住 Request = Response , 在HTTP中永远是这样,也就是说一个request只能有一个response。而且这个response也是被动的,不能主动发起。

  • 相关阅读:
    线程同步的几种实现方案
    关于java中三种初始化块的执行顺序
    java数组
    Codeblocks 17汉化
    聚焦天狗
    linux下搭建svn添加多个仓库(项目)
    使用Python在windows环境下获取Linux服务器的磁盘、内存等信息
    python smtplib使用163发送邮件 报错 554 DT:SPM
    防抖与节流
    js
  • 原文地址:https://www.cnblogs.com/xuexiaotian/p/14496711.html
Copyright © 2011-2022 走看看