轻松创建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开发微博实例
Mar 25 NodeJs
Windows系统下使用Sublime搭建nodejs环境
Apr 13 NodeJs
nodejs简单实现中英文翻译
May 04 NodeJs
NodeJS和BootStrap分页效果的实现代码
Nov 07 NodeJs
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
Jul 05 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 NodeJs
nodejs实现连接mongodb数据库的方法示例
Mar 15 NodeJs
详解redis在nodejs中的应用
May 02 NodeJs
Nodejs调用Dll模块的方法
Sep 17 NodeJs
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
Aug 20 NodeJs
NodeJS配置CORS实现过程详解
Dec 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
php 静态变量与自定义常量的使用方法
2010/01/26 PHP
prototype 学习笔记整理
2009/07/17 Javascript
使用JavaScript库还是自己写代码?
2010/01/28 Javascript
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
基于jquery实现的树形菜单效果代码
2015/09/06 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
jquery 多个radio的click事件实例
2016/12/03 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
2017/03/21 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
python中的错误处理
2016/04/10 Python
Python与R语言的简要对比
2017/11/14 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
Django之模板层的实现代码
2019/09/09 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
市场营销专业推荐信
2013/11/03 职场文书
入学申请自荐信范文
2014/02/26 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
小学教师暑期培训心得体会
2016/01/09 职场文书
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA