这行代码中的请求有什么区别:
http.createServer(function(request,response){. . .}
并请求
http.request()
这两个请求都是在服务器上完成的吗?
我是node.js的新手,如果我听起来很笨,我很抱歉!
http.request()
如何运作?
在http.request()
我们从其他网站获取数据但是为了从其他网站获取数据,我们首先需要访问我们的网站,然后提出请求?用简单的现实生活中的例子来解释它!
答案 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
方法的时候。