轻松创建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中使用monk访问mongodb
Jul 06 NodeJs
NodeJS学习笔记之Connect中间件模块(二)
Jan 27 NodeJs
NodeJs中的VM模块详解
May 06 NodeJs
nodejs爬虫抓取数据之编码问题
Jul 03 NodeJs
Nodejs中的this详解
Mar 26 NodeJs
Jquery通过ajax请求NodeJS返回json数据实例
Nov 08 NodeJs
详解nodejs 文本操作模块-fs模块(三)
Dec 22 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
nodejs中函数的调用实例详解
Oct 31 NodeJs
nodejs中request库使用HTTPS代理的方法
Apr 30 NodeJs
nodejs实现日志读取、日志查找及日志刷新的方法分析
May 20 NodeJs
nodejs中的异步编程知识点详解
Jan 17 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
人族 Terran 基本策略
2020/03/14 星际争霸
php微信公众平台开发类实例
2015/04/01 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
onpropertypchange
2006/07/01 Javascript
Firefox 无法获取cssRules 的解决办法
2006/10/11 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
2016/09/23 Javascript
JS中input表单隐藏域及其使用方法
2017/02/13 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
Python判断文件和文件夹是否存在的方法
2015/05/21 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
TensorFLow 不同大小图片的TFrecords存取实例
2020/01/20 Python
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
实习老师个人总结的自我评价
2013/09/28 职场文书
化学专业毕业生自荐信
2013/11/15 职场文书
旅游网创业计划书
2014/01/31 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
家长寄语大全
2014/04/02 职场文书
班组建设经验交流材料
2014/05/12 职场文书
奉献演讲稿范文
2014/05/21 职场文书
开学典礼策划方案
2014/05/28 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
公司总经理岗位职责
2015/04/01 职场文书
监守自盗观后感
2015/06/10 职场文书
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL