24

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

   http:  

 1 get:url.parse(req.url,true).query
 2     post:
 3       var queryString=require('queryString')
 4       var bodyParse=''
 5       req.on('data',(params)=>{
 6         bodyParse+=params
 7       })
 8       
 9       req.on('end',(params)=>{
10         let {name}=queryString.parse(bodyParse)
11         res.end(name)
12       })

  express:

1 get:
2         req.query.xxx
3       post:
4         var bodyParser=require('body-parser')
5         app.use(bodyParser.urlencoded({extends:false}))
6         app.post('/add',(req,res)=>{
7           let {name}=req.body
8           res.send(name)
9         })

  koa: 

1 koa:
2     get:
3       ctx.query.xxx
4     post:
5       var bodyParser=require('body-parser')
6       app.use(bodyParser())
7       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 的洋葱圈模型:

 1 const Koa = require('koa');
 2 const app = new Koa();
 3 
 4 app.use(async (ctx, next) => {
 5     console.log(1);
 6     await next();
 7     console.log(6);
 8 });
 9 
10 app.use(async (ctx, next) => {
11     console.log(2);
12     await next();
13     console.log(5);
14 });
15 
16 app.use(async (ctx, next) => {
17     console.log(3);
18     ctx.body = "hello world";
19     console.log(4);
20 });
21 
22 app.listen(3000, () => {
23     console.log('listenning on 3000');
24 });

最后输出 为 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也是被动的,不能主动发起。

posted @ 2021-03-07 23:10  路~  阅读(43)  评论(0)    收藏  举报