美文网首页
用 Node.js 获取请求内容

用 Node.js 获取请求内容

作者: kzc爱吃梨 | 来源:发表于2022-01-27 23:58 被阅读0次

get 请求

  • request.method 获取请求动词
  • request.url获取请求路径(含查询参数)
  • request.header 获取请求头
  • get 请求一般没有消息体/请求体

post 请求

  • curl -v -d "name=frank" http://localhost:8888
  • request.on('data', fn)获取消息体
  • request.on('end', fn) 拼接消息体
import * as http from "http";
import {IncomingMessage} from "http";

const server = http.createServer();

server.on('request', (request: IncomingMessage, response)=> {
    console.log(request.httpVersion)
    console.log(request.url)
    console.log(request.headers);
    const array = [];
    request.on('data', (chunk)=> {
        array.push(chunk)
    })
    request.on('end', ()=> {
        const body = Buffer.concat(array).toString();  // 拼接数据
        console.log('body', body)
        response.end('hi')
    })
})

server.listen(8888)
image.png

(request, response) 是啥

找类

根据文档requesthttp.IncomingMessage的实例
根据文档responsehttp.ServerResponse的实例

Request

  • 拥有headers、method、url等属性
  • 从stream.Readable类继承了data/end/error事件
  • 为什么不能直接拿到请求的消息体呢?跟 TCP 有关
    Response
  • 拥有 getHeader/setHeader/end/write等方法
  • 拥有statusCode 属性,可读可写
  • 继承了Stream,目前用不上

相关文章

网友评论

      本文标题:用 Node.js 获取请求内容

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