轻松创建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框架Express的模板视图机制分析
Jul 19 NodeJs
nodejs 实现模拟form表单上传文件
Jul 14 NodeJs
Nodejs进阶:基于express+multer的文件上传实例
Nov 21 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
nodejs连接mysql数据库简单封装示例-mysql模块
Apr 10 NodeJs
NodeJS创建最简单的HTTP服务器
May 15 NodeJs
基于nodejs 的多页面爬虫实例代码
May 31 NodeJs
Nodejs 和Session 原理及实战技巧小结
Aug 25 NodeJs
Nodejs实现文件上传的示例代码
Sep 26 NodeJs
Nodejs处理异常操作示例
Dec 25 NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 20 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 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
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
php短址转换实现方法
2015/02/25 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
浅谈laravel框架与thinkPHP框架的区别
2019/10/23 PHP
Prototype Object对象 学习
2009/07/12 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
AngularJS进行性能调优的7个建议
2015/12/28 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
使用vue-router设置每个页面的title方法
2018/02/11 Javascript
react以create-react-app为基础创建项目
2018/03/14 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
2018/04/11 jQuery
Vue 使用beforeEach实现登录状态检查功能
2019/10/31 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
[01:17:47]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
浅谈CSS3鼠标移入图片动态提示效果(transform)
2017/11/06 HTML / CSS
马来西亚与新加坡长途巴士售票网站:BusOnlineTicket.com
2018/11/05 全球购物
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
生产副总岗位职责
2013/11/28 职场文书
2013年员工自我评价范文
2013/12/27 职场文书
运动会解说词50字
2014/01/18 职场文书
大学生村官承诺书
2014/03/28 职场文书
厨房管理计划书
2014/04/27 职场文书
片区教研活动总结
2014/07/02 职场文书
简单租房协议书范本
2014/08/20 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
中秋客户感谢信
2015/01/22 职场文书