轻松创建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 的 c++ module 链接到 OpenSSL
Aug 03 NodeJs
轻松创建nodejs服务器(10):处理POST请求
Dec 18 NodeJs
nodejs 的 session 简单使用
Jun 06 NodeJs
用nodejs的实现原理和搭建服务器(动态)
Aug 10 NodeJs
解析NodeJs的调试方法
Dec 11 NodeJs
NodeJS创建最简单的HTTP服务器
May 15 NodeJs
浅析 NodeJs 的几种文件路径
Jun 07 NodeJs
详解nodejs实现本地上传图片并预览功能(express4.0+)
Jun 28 NodeJs
Nodejs之TCP服务端与客户端聊天程序详解
Jul 07 NodeJs
NodeJs crypto加密制作token的实现代码
Nov 15 NodeJs
nodejs环境使用Typeorm连接查询Oracle数据
Dec 05 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
德生H-501的评价与改造
2021/03/02 无线电
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
php中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
JavaScript的目的分析
2007/01/05 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
深入浅出理解javaScript原型链
2015/05/09 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
JS传参及动态修改页面布局
2017/04/13 Javascript
Django+Vue跨域环境配置详解
2018/07/06 Javascript
React和Vue中监听变量变化的方法
2018/11/14 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
react MPA 多页配置详解
2019/10/18 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
Python如何输出警告信息
2020/07/30 Python
Python接收手机短信的代码整理
2020/08/02 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
Python tkinter实现日期选择器
2021/02/22 Python
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
2019/07/18 HTML / CSS
美国眼镜网站:EyeBuyDirect
2017/04/13 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
六一儿童节演讲稿
2014/05/23 职场文书
无违反计划生育证明格式
2015/06/24 职场文书
公务员处分决定书
2015/06/25 职场文书
行政复议答复书
2015/07/01 职场文书