npm http和语法解释

时间:2016-12-29 04:13:07

标签: javascript http server

我需要对下面的一些语法以及正在执行的代码的顺序做一些澄清。

我猜它首先是创建服务器

var server = http.createServer(handleRequest);

然后执行server.listen函数。

但是在浏览器上,当用户在诸如'/'之类的路径上结束时,从哪里调用handleRequest函数,以及返回并存储在var server中的函数。 .listen包的server.listen部分中的npm http部分就像createServer一样吗?

// Here we require/import the HTTP module
var http = require("http");

// Here we define a port to listen to
var PORT = 8080;

// Here we create a generic function to handle requests and responses
function handleRequest(request, response) {

  // The below statement is triggered (client-side) when the user visits the PORT URL
  response.end("It Works!! Path Hit: " + request.url);
}

// Here we use the Node HTTP package to create our server.
// We then pass it the handleRequest function to empower it with functionality.
var server = http.createServer(handleRequest);

// Here we start our server so that it can begin listening to client requests.
server.listen(PORT, function() {

  // The below statement is triggered (server-side) when a user visits the PORT URL
  console.log("Server listening on: http://localhost:%s", PORT);

});

2 个答案:

答案 0 :(得分:0)

HTTP模块是直接内置于Node的模块。 createServer()返回一个服务器实例,该实例具有一个名为listen的方法。这基本上为request事件设置了一个事件监听器。当传入的请求进入时,HTTP会将其定向到handleRequest()函数

答案 1 :(得分:0)

http是节点(docs)的一部分,默认情况下未加载,因此我们必须要求它。

var server = http.createServer(handleRequest)创建一个新的http.Server实例,设置变量server以引用它刚刚创建的实例,并告诉它将任何请求路由到函数handleRequest

server.listen(PORT)使用创建的http.Server实例并使用任何PORT等于的端口调用其listen方法,告诉server侦听指定的端口。因此.listenhttp模块

的一部分

每当server收到请求时,就像你转到http://localhost:8080/一样,它会使用两个参数调用handleRequest,第一个是请求,第二个是我们可以写入的响应。 handleRequest从给定的请求参数中获取url,然后将响应参数写入字符串加上url,并结束有效发送响应的响应。