轻松创建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实现的一个简单udp广播服务器、客户端
Sep 25 NodeJs
Nodejs学习笔记之Stream模块
Jan 13 NodeJs
nodejs实现邮件发送服务实例分享
Mar 29 NodeJs
nodejs入门教程一:概念与用法简介
Apr 24 NodeJs
详解IWinter 一个路由转控制器的 Nodejs 库
Nov 15 NodeJs
详解nodejs通过响应回写的方式渲染页面资源
Apr 07 NodeJs
nodejs require js文件入口,在package.json中指定默认入口main方法
Oct 10 NodeJs
nodejs 使用nodejs-websocket模块实现点对点实时通讯
Nov 28 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
Mar 12 NodeJs
Nodejs中的require函数的具体使用方法
Apr 02 NodeJs
nodejs实现用户登录路由功能
May 22 NodeJs
NodeJS开发人员常见五个错误理解
Oct 14 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
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
试用php中oci8扩展
2015/06/18 PHP
制作个性化的WordPress登陆界面的实例教程
2016/05/21 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
TypeScript的安装、使用、自动编译的实现
2020/04/10 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
小程序点餐界面添加购物车左右摆动动画
2020/09/23 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
深入理解Django的中间件middleware
2018/03/14 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
代理商会议邀请函
2014/01/27 职场文书
大学生创业策划书
2014/02/02 职场文书
汉语言文学毕业生自荐信范文
2014/03/24 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
学习商务礼仪心得体会
2016/01/22 职场文书
送给客户微信问候语!
2019/07/04 职场文书
中国现代文学之经典散文三篇
2019/09/18 职场文书
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS