上一篇说完了如何建立一个简单的http服务,如今说说模块化.node
在开发过程当中,常常会说模块化这个词.那都表示什么含义呢?通常都有如下几层意思:浏览器
1.业务解耦.ide
业务耦合太多,后期不便于扩展和维护.这种状况经常出现于创业公司,当公司业务发展起来的时候,就会发现业务系统有严重的瓶颈,服务能力不足会制约公司的发展.因此须要把不相关的业务作成独立的系统.模块化
2.微服务微服务
在大的企业中常常会出现多种系统,每种系统又用到相同的功能.比喻说上传图片,若是每一个开发小组都去造轮子,那就太浪费了.若是将图片上传作成单独的服务,以开发API的方式提供给你们使用,就会系统很多效率.
ui
3.功能模块化spa
在同一个系统中可能会出现交叉使用别的模块的数据,你们都去操道别的业务的对应的表数据.在这种状况下,很难避免数据不会出现问题.吃蛋糕的人太多,而蛋糕只有一块,你们都动手去切的后果会怎么样?解决方案也同样,负责该模块的开发人员封装好该业务的代码,提供接口便可.而此时须要该使用该模块的人只管去调用,而没必要去管背后逻辑的实现.server
讲了废话一堆,如今就说说node怎么进行代码模块化,打包服务,方便其余地方调用.接口
模块化http服务:httpServer.js图片
//业务功能:将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
//引入http Server模块 var httpServer=require('./httpServer'); //启动http server服务 httpServer.beginStart();
最后能够在终端启动服务:node index.js
打开浏览器http://localhost:8888,能够看到效果