Node.js中的createServer方法

时间:2015-12-12 19:39:44

标签: javascript node.js server

我一直在查看这个基本示例,以便在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”,但在这种情况下,我不是......

很抱歉,如果没有解释得很好!

2 个答案:

答案 0 :(得分:4)

当您致电createServer时,您正在将函数onRequest传递给它:

var server = http.createServer(onRequest);

这种模式被称为回调:你将一个函数传递给其他人,期望他们会在有趣的事情发生时调用你的函数。

从本质上讲,你是对Node说的,

  

嘿,请为我创建一个HTTP服务器。每当您收到请求时,请使用作为参数传递的请求和响应对象来调用我的函数onRequest

另一种方法是收听request event,它在回调中采用相同的参数。

参数记录为http.IncomingMessagehttp.ServerResponse。您可以随意调用它们,但requestresponse是惯用的参数名称。 (有些人使用reqres,因为它们的输入时间较短。)

答案 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/

现在你看到了“你好”