轻松创建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(二)--- Node.js事件模块
May 21 NodeJs
用nodejs搭建websocket服务器
Jan 23 NodeJs
实例分析nodejs模块xml2js解析xml过程中遇到的坑
Mar 18 NodeJs
详解nodejs操作mongodb数据库封装DB类
Apr 10 NodeJs
nodejs操作mysql实现增删改查的实例
May 28 NodeJs
nodejs判断文件、文件夹是否存在及删除的方法
Nov 10 NodeJs
nodejs简单读写excel内容的方法示例
Mar 16 NodeJs
使用koa-log4管理nodeJs日志笔记的使用方法
Nov 30 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 NodeJs
nodejs各种姿势断点调试的方法
Jun 18 NodeJs
如何利用nodejs实现命令行游戏
Nov 24 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
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
JavaScript 关键字屏蔽实现函数
2009/08/02 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
2017/07/24 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
除Console.log()外更多的Javascript调试命令
2018/01/24 Javascript
vuex 的简单使用
2018/03/22 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
2018/10/22 Javascript
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
学习python处理python编码问题
2011/03/13 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
Python英文文章词频统计(14份剑桥真题词频统计)
2019/10/13 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
基于python traceback实现异常的获取与处理
2019/12/13 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
Python调用ffmpeg开源视频处理库,批量处理视频
2020/11/16 Python
python 通过exifread读取照片信息
2020/12/24 Python
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
瀑布模型都有哪些优缺点
2014/06/23 面试题
机电一体化自荐信
2013/12/10 职场文书
试用期转正鉴定评语
2014/01/27 职场文书
初中校园广播稿
2014/02/02 职场文书
酒店开业策划方案
2014/06/02 职场文书
公司活动总结怎么写
2014/06/25 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
公司老总年会致辞
2015/07/30 职场文书
一年级语文教学随笔
2015/08/14 职场文书
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL