轻松创建nodejs服务器(3):代码模块化


Posted in NodeJs onDecember 18, 2014

nodejs的功能块大都以模块的形式存在的。

通常会有一个统一入口index.js,然后调用不同的模块来完成我们需要的功能。

我们先来看看怎么把server.js变成一个模块让 index.js 主文件使用。

var http = require("http");

...

http.createServer(...);

“http” 是nodejs自带的模块,我们在我们的代码中请求它并把返回值赋给一个本地变量。 我们可以用这个变量来调用 http 模块所提供的公共方法的对象,变量名不是固定的,你完全可以按照你的喜好来命名这个变量,不过我建议直接用模块名来做变量名,可以使代码可读性更高些。

我们按这个方式改一下server.js里的代码,我们把代码放到start()函数里,并通过expors将代码提供给其他页面引用。

var http = require("http");

function start() {

 function onRequest(request, response) {

  console.log("Request received.");

  response.writeHead(200, {"Content-Type": "text/plain"});

  response.write("Hello World");

  response.end();

 }

 http.createServer(onRequest).listen(8888);

 console.log("Server has started.");

}

exports.start = start;

这样,我们现在就可以创建我们的主文件 index.js 并在其中启动我们的HTTP了,虽然服务器的代码还在 server.js 中。

创建 index.js 文件并写入以下内容:

var server = require("./server");

server.start();

执行node index.js

这样做就可以把应用的不同部分放入不同的文件里,并且通过生成模块的方式把它们连接到一起了。

下一节我们要了解一下路由

NodeJs 相关文章推荐
Nodejs极简入门教程(三):进程
Oct 27 NodeJs
NodeJS使用formidable实现文件上传
Oct 27 NodeJs
NodeJS整合银联网关支付(DEMO)
Nov 09 NodeJs
详解nodejs 文本操作模块-fs模块(四)
Dec 22 NodeJs
nodejs+websocket实时聊天系统改进版
May 18 NodeJs
nodejs模块学习之connect解析
Jul 05 NodeJs
让nodeJS支持ES6的词法----babel的安装和使用方法
Jul 31 NodeJs
nodeJS微信分享
Dec 20 NodeJs
nodeJs实现基于连接池连接mysql的方法示例
Feb 10 NodeJs
手把手教你如何使用nodejs编写cli命令行
Nov 05 NodeJs
nodejs分离html文件里面的js和css的方法
Apr 09 NodeJs
nodejs中各种加密算法的实现详解
Jul 11 NodeJs
轻松创建nodejs服务器(2):nodejs服务器的构成分析
Dec 18 #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
You might like
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
用php和MySql来与ODBC数据连接
2006/10/09 PHP
PHP中strtotime函数使用方法详解
2011/11/27 PHP
php搜索文件程序分享
2015/10/30 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
页面中iframe相互传值传参
2009/12/13 Javascript
js 函数的副作用分析
2011/08/23 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
javascript实现dom元素可拖动
2016/03/21 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
Vue中props的详解
2019/05/16 Javascript
element中的$confirm的使用
2020/04/26 Javascript
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
2017/06/21 Python
对python 中re.sub,replace(),strip()的区别详解
2019/07/22 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
如何用Python徒手写线性回归
2021/01/25 Python
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
廉价连衣裙和婚纱礼服在线销售:Tbdress
2019/02/28 全球购物
全球工业:Global Industrial
2020/02/01 全球购物
阿迪达斯越南官网:adidas越南
2020/07/19 全球购物
材料化学应届生求职信
2013/10/09 职场文书
医院门卫岗位职责
2013/12/30 职场文书
现场施工员岗位职责
2014/03/10 职场文书
护士节策划方案
2014/05/19 职场文书
2015年安全月活动总结
2015/03/26 职场文书
小学数学教师研修日志
2015/11/13 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
mysql事务隔离级别详情
2021/10/24 MySQL