zl程序教程

您现在的位置是:首页 >  后端

当前栏目

轻松创建nodejs服务器(2):nodejs服务器的构成分析

Nodejs服务器 分析 轻松 创建 构成
2023-06-13 09:15:37 时间

紧接上一节,我们来分析一下代码:

第一行请求(require)Node.js自带的http模块,并且把它赋值给http变量。

接下来我们调用http模块提供的函数:createServer。

这个函数会返回一个对象,这个对象有一个叫做listen的方法,这个方法有一个数值参数,指定这个HTTP服务器监听的端口号。

为了提高可读性,我们来改一下这段代码。

原来的代码:

复制代码代码如下:


varhttp=require("http");
http.createServer(function(request,response){
 response.writeHead(200,{"Content-Type":"text/plain"});
 response.write("HelloWorld");
 response.end();
}).listen(8888);

可以改写成:

复制代码代码如下:


varhttp=require("http");
functiononRequest(request,response){
 response.writeHead(200,{"Content-Type":"text/plain"});
 response.write("HelloWorld");
 response.end();
}
http.createServer(onRequest).listen(8888);

我们定义了一个onRequest()函数,并将它作为参数传给createServer,类似回调函数。

我们给某个方法传递了一个函数,这个方法在有相应事件发生时调用这个函数来进行回调,我们把这叫做基于事件驱动的回调。

接下来我们看一下onRequest()的主体部分,当回调启动,我们的onRequest()函数被触发的时候,有两个参数被传入:request和response。

request:收到的请求信息;

response:收到请求后做出的响应。

所以这段代码所执行的操作就是:

当收到请求时,

1、使用response.writeHead()函数发送一个HTTP状态200和HTTP头的内容类型(content-type)

2、使用response.write()函数在HTTP相应主体中发送文本“HelloWorld”。

3、调用response.end()完成响应。

这样分析,是不是加深了你对这段代码的理解呢?

下一节我们来了解一下,nodejs的代码模块化。