轻松创建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中的非阻塞方法介绍
Jun 05 NodeJs
nodejs中使用monk访问mongodb
Jul 06 NodeJs
nodejs URL模块操作URL相关方法介绍
Mar 03 NodeJs
nodejs爬虫抓取数据之编码问题
Jul 03 NodeJs
nodeJs爬虫获取数据简单实现代码
Mar 29 NodeJs
Ajax异步文件上传与NodeJS express服务端处理
Apr 01 NodeJs
nodejs集成sqlite使用示例
Jun 05 NodeJs
详解NODEJS基于FFMPEG视频推流测试
Nov 17 NodeJs
详解nodejs通过响应回写的方式渲染页面资源
Apr 07 NodeJs
nodejs取得当前执行路径的方法
May 13 NodeJs
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
Aug 20 NodeJs
Nodejs 微信小程序消息推送的实现
Jan 20 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
php使用Imagick生成图片的方法
2015/07/31 PHP
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
JS 面向对象之继承---多种组合继承详解
2016/07/10 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
JS常用知识点整理
2017/01/21 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
Java基础知识面试题
2014/03/25 面试题
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
综合办公室个人的自我评价
2013/12/22 职场文书
先进党支部事迹材料
2014/01/13 职场文书
运动会开幕式邀请函
2014/02/03 职场文书
制药工程专业职业生涯规划范文
2014/03/10 职场文书
村干部培训方案
2014/05/02 职场文书
家具公司总经理岗位职责
2014/07/08 职场文书
对外汉语专业大学生职业生涯规划书
2014/10/11 职场文书
情人节活动总结范文
2015/02/05 职场文书
Python基础详解之邮件处理
2021/04/28 Python
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript