理解Node.js请求对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解Node.js请求对象相关的知识,希望对你有一定的参考价值。

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

答案

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展示了一切如何融合在一起。

以上是关于理解Node.js请求对象的主要内容,如果未能解决你的问题,请参考以下文章

Node.js JavaScript 片段中的跳过代码

理解Node.js的事件轮询

理解 node.js 的事件循环

将 Node.js GET /POST 请求更改为 Ajax

Node.js 路由

node.js 是面向对象的么