http.request vs http.createServer

时间:2018-01-22 00:28:42

标签: node.js http httprequest

这行代码中的请求有什么区别:

http.createServer(function(request,response){. . .}

并请求

http.request()

这两个请求都是在服务器上完成的吗?

我是node.js的新手,如果我听起来很笨,我很抱歉!

http.request()如何运作?

http.request()我们从其他网站获取数据但是为了从其他网站获取数据,我们首先需要访问我们的网站,然后提出请求?用简单的现实生活中的例子来解释它!

2 个答案:

答案 0 :(得分:4)

http.request()向另一个HTTP服务器发出请求。假设由于某种原因我想下载Stack Overflow的主页......

http.request('https://stackoverflow.com/', (res) => {
  // ...
});

http.createServer() ...它创建了一个HTTP服务器。也就是说,它将您的应用程序绑定到套接字以进行侦听。当从某个地方或其他地方建立新连接时,它会处理该请求的基础HTTP协议,并要求您的应用程序通过回调来处理它。来自Node.js documentation

http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('okay');
});

这两种方法完全无关。 http.request()用于向HTTP服务器发出请求。 http.createServer()用于创建自己的HTTP服务器。不要被回调弄糊涂。

答案 1 :(得分:-1)

基于nodejs的源代码(下面的摘录),createServer只是一个实例化服务器的辅助方法。

摘自http.js的第1674行。

exports.Server = Server;


exports.createServer = function(requestListener) {
  return new Server(requestListener);
};

http.request() API适用于您希望服务器代码充当客户端并从其他网站请求内容并使用GET, POST, PUT, DELETE方法的时候。