Undertand Node.js请求对象

时间:2017-12-25 09:48:24

标签: node.js request

我是node.js的新手,所以有人可以告诉我http.IncomingMessage和http.ClientRequest在使用方面的区别吗?

1 个答案:

答案 0 :(得分:0)

http.ClientRequest表示正在进行的HTTP 请求。它是从http.request()返回的。阅读文档here

http.IncomingMessage表示来自HTTP请求的响应。这将作为'response' http.ClientRequest事件的参数传递。 (它也可以是'request' http.Server事件的参数。)请参阅文档here

以下是显示http.ClientRequesthttp.IncomingMessage的使用的基本示例:

const http = require('http')

// We define a request to google.com
const options = {
  hostname: 'www.google.com',
  port: 80,
  path: '/',
  method: 'GET'
};

// req is a http.ClientRequest object
const req = http.request(options)

// Add a listener to req for a response. res is a http.IncomingMessage object
req.on('response', (res) => {

  // set the encoding of res
  res.setEncoding('utf8')

  // http.IncomingMessage is a readable stream, so define an event listener for data
  res.on('data', (data) => {
    console.log(data)
  })
})

// req.end() will send the request to Google
req.end()

http.request() documentation显示了所有内容如何组合在一起。