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


Posted in NodeJs onDecember 18, 2014

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

第一行请求(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 相关文章推荐
NodeJS Express框架中处理404页面一个方式
May 28 NodeJs
NodeJS创建基础应用并应用模板引擎
Apr 12 NodeJs
Nodejs 搭建简单的Web服务器详解及实例
Nov 30 NodeJs
详解NodeJs支付宝移动支付签名及验签
Jan 06 NodeJs
Nodejs高扩展性的模板引擎 functmpl简介
Feb 13 NodeJs
3分钟快速搭建nodejs本地服务器方法运行测试html/js
Apr 01 NodeJs
nodejs之get/post请求的几种方式小结
Jul 26 NodeJs
Nodejs核心模块之net和http的使用详解
Apr 02 NodeJs
NodeJS 文件夹拷贝以及删除功能
Sep 03 NodeJs
Nodejs实现图片上传、压缩预览、定时删除功能
Oct 25 NodeJs
nodejs脚本centos开机启动实操方法
Mar 04 NodeJs
浅谈Node的内存泄露问题
May 06 NodeJs
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
Dec 18 #NodeJs
Nodejs实现多人同时在线移动鼠标的小游戏分享
Dec 06 #NodeJs
Nodejs实现的一个静态服务器实例
Dec 06 #NodeJs
nodejs中简单实现Javascript Promise机制的实例
Dec 06 #NodeJs
nodejs实现的一个简单聊天室功能分享
Dec 06 #NodeJs
详谈nodejs异步编程
Dec 04 #NodeJs
nodejs下打包模块archiver详解
Dec 03 #NodeJs
You might like
ajax 的post方法实例(带循环)
2011/07/04 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
注释PHP和html混合代码的小技巧(分享)
2016/11/03 PHP
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
js中function()使用方法
2013/12/24 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
2017/06/17 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
ES6 Generator函数的应用实例分析
2019/06/26 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
[59:07]海涛为你详解DOTA2新版本“贤哲秘契”
2014/11/22 DOTA
[59:08]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第一局
2016/02/27 DOTA
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Lombok插件安装(IDEA)及配置jar包使用详解
2020/11/04 Python
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
销售自荐信
2013/10/22 职场文书
我的网上商城创业计划书
2013/12/26 职场文书
应届电子商务毕业自荐书范文
2014/02/11 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
高中生班主任评语
2014/04/25 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
成绩报告单家长评语
2014/12/30 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
趵突泉导游词
2015/02/03 职场文书
休学证明范本
2015/06/19 职场文书
如何写新闻稿
2015/07/18 职场文书
党性修养心得体会2016
2016/01/21 职场文书
安全责任协议书范本
2016/03/23 职场文书