轻松创建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 相关文章推荐
使用forever管理nodejs应用教程
Jun 03 NodeJs
nodejs npm包管理的配置方法及常用命令介绍
Jun 05 NodeJs
nodejs调用cmd命令实现复制目录
May 04 NodeJs
nodejs实现获取某宝商品分类
May 28 NodeJs
详解nodejs 文本操作模块-fs模块(五)
Dec 23 NodeJs
NodeJs中express框架的send()方法简介
Jun 20 NodeJs
nodejs后台集成ueditor富文本编辑器的实例
Jul 11 NodeJs
NodeJS收发GET和POST请求的示例代码
Aug 25 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
详解Nodejs内存治理
May 13 NodeJs
NodeJs实现简单的爬虫功能案例分析
Dec 05 NodeJs
typescript nodejs 依赖注入实现方法代码详解
Jul 21 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
wiki-shan写的php在线加密的解密程序
2008/09/07 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
总结JavaScript三种数据存储方式之间的区别
2016/05/03 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
JavaScript引用类型Date常见用法实例分析
2018/08/08 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
Vue项目中使用WebUploader实现文件上传的方法
2019/07/21 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
JS算法教程之字符串去重与字符串反转
2020/12/15 Javascript
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
用Python抢过年的火车票附源码
2015/12/07 Python
Python内置函数OCT详解
2016/11/09 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
python实现简单俄罗斯方块
2020/03/13 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
小学班长竞选演讲稿
2014/04/24 职场文书
物流专业自荐信
2014/05/23 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
学生安全责任书范本
2014/07/24 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
企业内部管理控制:采购授权审批制度范本
2020/01/19 职场文书
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python