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

 更新时间:2014年12月18日 09:27:55   投稿:junjie  
这篇文章主要介绍了轻松创建nodejs服务器(2):nodejs服务器的构成分析,本文是对第一节中简单服务器的代码进行分析总结,需要的朋友可以参考下

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

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

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

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

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

原来的代码:

复制代码 代码如下:

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

可以改写成:

复制代码 代码如下:

var http = require("http");
function onRequest(request, response) {
 response.writeHead(200, {"Content-Type": "text/plain"});
 response.write("Hello World");
 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相应主体中发送文本“Hello World”。

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

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

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

相关文章

  • 理解nodejs的stream和pipe机制的原理和实现

    理解nodejs的stream和pipe机制的原理和实现

    本篇文章主要介绍了理解nodejs的stream和pipe机制的原理和实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 整理 node-sass 安装失败的原因及解决办法(小结)

    整理 node-sass 安装失败的原因及解决办法(小结)

    这篇文章主要介绍了整理 node-sass 安装失败的原因及解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • nodejs如何获取时间戳与时间差

    nodejs如何获取时间戳与时间差

    本文详细介绍了nodejs获取时间戳与时间差的多种方法,对平时nodejs的使用很有帮助,下面一起来看看吧。
    2016-08-08
  • async/await与promise(nodejs中的异步操作问题)

    async/await与promise(nodejs中的异步操作问题)

    这篇文章主要介绍了async/await与promise(nodejs中的异步操作问题),非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • nodejs实现用户登录路由功能

    nodejs实现用户登录路由功能

    这篇文章主要介绍了nodejs中实现用户登录路由功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • 三步教你完成切换nodejs版本

    三步教你完成切换nodejs版本

    nvm是一个node的版本管理工具,可以简单操作node版本的切换、安装、查看,下面这篇文章主要给大家介绍了关于如何通过三步完成切换nodejs版本的相关资料,需要的朋友可以参考下
    2023-01-01
  • Node.js API详解之 dns模块用法实例分析

    Node.js API详解之 dns模块用法实例分析

    这篇文章主要介绍了Node.js API详解之 dns模块用法,结合实例形式分析了Node.js API中dns模块基本功能、相关函数与使用技巧,需要的朋友可以参考下
    2020-05-05
  • 初始Nodejs

    初始Nodejs

    本文属于nodejs的基础知识介绍篇,从nodejs的基本概念,到架构示意图,同步异步等方面做了详细的解答,是篇非常不错的文章
    2014-11-11
  • 删除node_modules文件夹太慢的解决方案

    删除node_modules文件夹太慢的解决方案

    这篇文章主要介绍了删除node_modules文件夹太慢的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 使用GruntJS构建Web程序之Tasks(任务)篇

    使用GruntJS构建Web程序之Tasks(任务)篇

    任务(Tasks)是grunt的核心概念,你所做的很多工作比如资源合并(concat)、压缩(uglify)都是在配置任务。 每次grunt运行的时候,你指定的一个或多个任务也在运行,如果你没有指定任务,那么一个默认名为“default”的任务将自动运行。
    2014-06-06

最新评论