上一篇说完了如何创建一个简单的http服务,现在说说模块化.
在开发过程中,经常会说模块化这个词.那都表示什么含义呢?一般都有以下几层意思:
1.业务解耦.
业务耦合太多,后期不便于扩展和维护.这种情况常常出现于创业公司,当公司业务发展起来的时候,就会发现业务系统有严重的瓶颈,服务能力不足会制约公司的发展.所以需要把不相关的业务做成独立的系统.
2.微服务
在大的企业中经常会出现多种系统,每种系统又用到相同的功能.比喻说上传图片,如果每个开发小组都去造轮子,那就太浪费了.如果将图片上传做成单独的服务,以开发API的方式提供给大家使用,就会系统不少效率.
3.功能模块化
在同一个系统中可能会出现交叉使用别的模块的数据,大家都去操作别的业务的对应的表数据.在这种情况下,很难避免数据不会出现问题.吃蛋糕的人太多,而蛋糕只有一块,大家都动手去切的后果会怎么样?解决方案也一样,负责该模块的开发人员封装好该业务的代码,提供接口即可.而此时需要该使用该模块的人只管去调用,而不必去管背后逻辑的实现.
讲了废话一堆,现在就说说node怎么进行代码模块化,打包服务,方便其他地方调用.
模块化http服务:httpServer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
//业务功能:将http服务打包为一个模块,方便在其他地方调用
//引入http模块
var
http = require(
'http'
);
//封装启动http服务
var
startHttp =
function
() {
var
onRequest =
function
(request, response) {
response.writeHead(200, {
'Content-Type'
:
'text/plain;charset=UTF-8'
});
response.write(
'大家好'
);
response.end();
}
http.createServer(onRequest).listen(
'8888'
);
console.log(
'Http server has started.'
);
}
//exports生成模块beginStart,作用是调用启动http服务
exports.beginStart = startHttp;
|
调用模块服务
先创建一个统一入口的文件index.js
1
2
3
4
|
//引入http Server模块
var
httpServer=require(
'./httpServer'
);
//启动http server服务
httpServer.beginStart();
|
最后可以在终端启动服务:node index.js
打开浏览器http://localhost:8888,可以看到效果
本文转自 hgditren 51CTO博客,原文链接:http://blog.51cto.com/phpme/1893920,如需转载请自行联系原作者