轻松创建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打包工具整合到鼠标右键的方法
May 11 NodeJs
跟我学Nodejs(二)--- Node.js事件模块
May 21 NodeJs
Nodejs学习item【入门手上】
May 05 NodeJs
详解Nodejs的timers模块
Dec 22 NodeJs
Nodejs 获取时间加手机标识的32位标识实现代码
Mar 07 NodeJs
NodeJs模拟登陆正方教务
Apr 28 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
使用nodeJs来安装less及编译less文件为css文件的方法
Nov 20 NodeJs
NodeJs实现定时任务的示例代码
Dec 05 NodeJs
nodejs高大上的部署方式(PM2)
Sep 11 NodeJs
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
Oct 17 NodeJs
详解nodejs内置模块
May 06 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中header跳转使用include包含解决参数丢失问题
2015/05/08 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
js 加载并解析XML字符串的代码
2009/12/13 Javascript
js中string转int把String类型转化成int类型
2014/08/13 Javascript
JavaScript分秒倒计时器实现方法
2015/02/02 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
2015/12/22 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
AngularJS基础 ng-list 指令详解及示例代码
2016/08/02 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
小程序云开发实战小结
2018/10/25 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
python实现隐马尔科夫模型HMM
2018/03/25 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
python实现飞机大战小游戏
2019/11/08 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
国际书籍零售商:Wordery
2017/11/01 全球购物
蒂娜商店:Tiina the Store
2019/12/07 全球购物
南京软件公司的.net程序员笔试题
2014/08/31 面试题
vue路由实现登录拦截
2021/03/24 Vue.js
小区门卫管理制度
2014/01/29 职场文书
销售人员求职的自我评价分享
2014/03/15 职场文书
法院信息化建设方案
2014/05/21 职场文书
医院搬迁方案
2014/06/14 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
防卫过当辩护词
2015/05/21 职场文书
摘录式读书笔记
2015/07/01 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js