我需要对下面的一些语法以及正在执行的代码的顺序做一些澄清。
我猜它首先是创建服务器
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);
});
答案 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
侦听指定的端口。因此.listen
是http
模块
每当server
收到请求时,就像你转到http://localhost:8080/一样,它会使用两个参数调用handleRequest
,第一个是请求,第二个是我们可以写入的响应。 handleRequest
从给定的请求参数中获取url,然后将响应参数写入字符串加上url,并结束有效发送响应的响应。