美文网首页
用 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