我一直在查看这个基本示例,以便在Node中设置一个简单的服务器,但是我真的很难理解“请求”和“响应”参数的来源。他们指向哪里以及如何?
// Load the http module to create an http server.
var http = require('http');
function onRequest(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello World\n");
}
// Configure our HTTP server to respond with Hello World to all requests.
var server = http.createServer(onRequest);
// Listen on port 8000, IP defaults to 127.0.0.1
server.listen(8000);
通常在将参数传递给函数时,我会传递一些我能看到的东西,比如一个等于5的变量,或者“Hello”,但在这种情况下,我不是......
很抱歉,如果没有解释得很好!
答案 0 :(得分:4)
当您致电createServer
时,您正在将函数onRequest
传递给它:
var server = http.createServer(onRequest);
这种模式被称为回调:你将一个函数传递给其他人,期望他们会在有趣的事情发生时调用你的函数。
从本质上讲,你是对Node说的,
嘿,请为我创建一个HTTP服务器。每当您收到请求时,请使用作为参数传递的请求和响应对象来调用我的函数
onRequest
。
另一种方法是收听request
event,它在回调中采用相同的参数。
参数记录为http.IncomingMessage
和http.ServerResponse
。您可以随意调用它们,但request
和response
是惯用的参数名称。 (有些人使用req
和res
,因为它们的输入时间较短。)
答案 1 :(得分:0)
创建服务器并发送响应:
1)。创建服务器
var http = require('http');
var server = http.createServer ( function(request,response){
response.writeHead(200,{"Content-Type":"text\plain"});
response.end("Hello");
});
server.listen(8000);
console.log("Server running on port 8000");
2)。保存上面的代码并在cmd中运行。
3)。打开浏览器并转到http://localhost:8000/
现在你看到了“你好”