首页 > 代码库 > 学习node.js第一天:node模块化

学习node.js第一天:node模块化

        上一篇说完了如何创建一个简单的http服务,现在说说模块化.

        

        在开发过程中,经常会说模块化这个词.那都表示什么含义呢?一般都有以下几层意思:

        1.业务解耦.

        业务耦合太多,后期不便于扩展和维护.这种情况常常出现于创业公司,当公司业务发展起来的时候,就会发现业务系统有严重的瓶颈,服务能力不足会制约公司的发展.所以需要把不相关的业务做成独立的系统.

        2.微服务

        在大的企业中经常会出现多种系统,每种系统又用到相同的功能.比喻说上传图片,如果每个开发小组都去造轮子,那就太浪费了.如果将图片上传做成单独的服务,以开发api的方式提供给大家使用,就会系统不少效率.       

        3.功能模块化

        在同一个系统中可能会出现交叉使用别的模块的数据,大家都去操作别的业务的对应的表数据.在这种情况下,很难避免数据不会出现问题.吃蛋糕的人太多,而蛋糕只有一块,大家都动手去切的后果会怎么样?解决方案也一样,负责该模块的开发人员封装好该业务的代码,提供接口即可.而此时需要该使用该模块的人只管去调用,而不必去管背后逻辑的实现.


        讲了废话一堆,现在就说说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:888可以看到效果

学习node.js第一天:node模块化