Node.js后端开发 - 基础篇 #12 web 服务器 part 4 用模块化思想组织代码

上一篇文章我们介绍了nodejs的web 服务器 part 3 响应HTML页面,详见: Node.js后端开发 - 基础篇 #11 web 服务器 part 3 响应 HTML 页面,这篇文章我们将来介绍一下怎么把我们以前写的代码给重构一下,就是用更好的方式把他们给组织一下,之前我们讲过一个概念叫模块,也就是说用一些exports、require语句把我们的代码变得可读性更强一些、更模块化一些,这样我们写的代码更像一些web框架,我们也能更好理解一些web框架,它们的代码是怎么组织的。我希望我们以后学习到一些知识点,我们一边写代码也顺便把代码进行一些模块化的重构!下面我们来重构一下上篇文章app.js里面的代码,如下:

var http = require('http');
var fs = require('fs');

//把启动server、响应客户端的代码,放在一个函数里面
function startServer() {
    var onRequest = function (request, response) {
        console.log('Request received');
        response.writeHead(200, { 'Content-Type': 'text/html' });
        var myReadStream = fs.createReadStream(__dirname + '/index.html', 'utf8');
        myReadStream.pipe(response);
    }

    var server = http.createServer(onRequest);

    server.listen(3000, '127.0.0.1');
    console.log('Server started on localhost port 3000');
}

// 暴露startServer函数
//下面的代码,等同于 module.exports.startServer = startServer;
exports.startServer = startServer;

然后我们把app.js文件的名字修改为server.js,然后新建一个app.js文件,这时候的app.js文件里面写入以下代码,如下:

//require导入server.js模块
var server = require('./server');

//调用server.js模块的startServer函数
server.startServer();

这里我们把 server.js 里面的代码当做一个模块,入口文件依然是 app.js 文件!我们启动sever

MacBook-Pro:hello-nodejs luminal$ node app
Server started on localhost port 3000

然后在浏览器中输入:http://localhost:3000/,它的效果和上篇文章代码运行的效果一样,这里就不演示了!

我们以后学习到一些知识点,我们一边写代码也顺便把代码进行一些模块化的重构,这样我们也能更好理解一些框架,它们是怎么来组织一些文件的!一些模块的知识点可参考我前面的博文:Node.js后端开发 - 基础篇 #4 模块

目录:网盘文件永久链接第一章 NG WDM系统硬件 1.1_NG WDM系统硬件 (1) 1.2_NG WDM系统硬件 (2) 1.3_NG WDM系统硬件 (3) 第二章 NG WDM设备组网与应用 2.1_网络层次和系统架构 2.2_站点类型 2.3_站点应用场景和组网基本要素 第三章 NG WDM光电层调度方案 3.1_NG WDM光层调度方案 3.2_NG WDM电层调度方案 第四章 NG WDM通用数据配置 4.1_配置前准备 4.2_创建并配置网元和网络 4.3_备份网元数据库 第五章 NG WDM光层业务配置 5.1_WDM光层数据配置 第六章 NG WDM电层业务配置 6.1_NG-WDM电层业务配置 第七章 NG WDM系统调测 7.1_调测前准备 7.2_非相干系统调测 7.3_相干系统光功率调测、混传系统光功率调测与系统调测 第八章 NG WDM系统常用指标测试 8.1_NG WDM 系统常用指标测试 第九章 NG WDM设备保护 9.1_设备保护,光层保护 - 光线路保护 9.2_光层保护 - 板内1+1,客户侧1+1与电层保护 第十章 NG WDM设备日常维护 10.1_设备侧日常维护 10.2_网管侧日常维护 第十一章 NG WDM告警信号流 11.1_概述与光层告警分析 11.2_电层告警分析 第十二章 NG WDM 系统故障处理 12.1_故障处理准备与故障定位思路 12.2_常见故障分析与故障案例 第十三章 SOM智慧光管系统专题 13.1_SOM系统介绍 13.2_SOM系统原理 13.3_SOM系统配置与操作 第十四章 智能光纤管理系统专题 14.1_智能光纤管理系统介绍 14.2_线路光纤质量监测原理 14.3_光纤质量检测功能的使用 第十五章 NG WDM 分组技术简介 15.1_IP概述 15.2_MPLS技术 15.3_PWE3技术 15.4_MPLS-TP技术 第十六章 MS-OTN 组网与业务介绍 16.1_网络应用 16.2_业务介绍 16.3_网络保护 第十七章 OptiX OSN 1800V 分组业务配置 17.1_Optix OSN 1800V分组业务配置 第十八章 新技术专题 18.1_新技术专题 第十九章 MSTP技术专题-时钟保护 19.1_时钟保护的基本概念与标准SSM时钟保护协议 19.2_扩展SSM时钟保护协议 第二十章 MSTP技术专题-ECC维护、指针调整 20.1_MSTP技术专题-ECC维护、指针调整 第二十一章 MSTP技术专题-PCM技术 21.1_PCM技术原理与应用 21.2_PCM单板 第二十二章 MSTP单板更替换 22.1_单板更替换概述 22.2更换故障单板 22.3_单板兼容替代 22.4_单板容量升级 第二十三章 离散业务分析与处理 23.1_离散业务的基本概念 23.2_ 离散业务产生的原因和处理方法 23.3_离散业务的清理步骤 23.4_如何避免产生离散业务 第二十四章 以太网业务常见指标测试 24.1_以太网基本概念 24.2_以太网性能测试简介 24.3_以太网业务常见测试指标 24.4_以太网业务常见指标测试步骤 第二十五章 MSTP设备故障处理 25.1_故障定位准备 25.2_故障定位方法 25.3_故障案例分析 第二十六章 ASON智能光网络 26.1_ASON介绍与基本功能 26.2_ASON功能特性(1) 26.3_ASON功能特性(2) 26.4_2M ASON介绍
ODU全称为Oracle Database Unloader,是类似于Oracle的DUL的软件,用于直接从Oracle数据库的数据文件中获取表数据。在各种原因造成的数据库不能打开时,用于抢救数据,最大限度地减少数据丢失。ODU有什么功能特点?支持的Oracle数据库版本包括8i,9i,10g,11g 自动检测数据文件的表空间号和文件号 在有SYSTEM表空间的情况下,自动获取数据字典信息。 支持各种表,普通的HEAP表,IOT表,聚簇(CLUSTER)表。 DESC表,以显示表的列定义 支持10g及以上的大文件(BigFile)表空间 列出表的分区和子分区 支持表被truncate后的数据恢复 支持表被drop后的数据恢复 支持压缩表 支持在没有SYSTEM表空间和数据字典损坏的情况下恢复数据,在没有数据字典可用时,ODU能够自动判断数据的类型 支持IOT表导出: 普通IOT表的导出 压缩IOT表的导出 支持IOT表溢出段 支持IOT表分区(包括子分区) 只能在有SYSTEM表空间时才能导出IOT表 支持多种平台的数据库,包括AIX、LINUX、HPUX、SOLARIS、WINDOWS等。能够在一个平台上导出其他平台的数据,比如在Windows 32位系统上,使用AIX系统上的数据文件导出数据。 支持的数据类型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG, DATE, RAW, LONG RAW, BLOB, CLOB, TIMESTAMP (9i+) , BINARY FLOAT, BINARY DOUBLE (10g+) 导出的数据格式包括纯文本和DMP文件两种。以纯文本导出时,能够自动生成建表的SQL和SQLLDR导入所需的CONTROL文件(.CTL) 支持同一个库中不同的块大小的数据文件。 全面支持LOB字段: 支持CLOB、NCLOB和BLOB CLOB支持Big Endian和Little Endian字节序 支持LOB分区,子分区 支持同一个表中,不同LOB列使用不同CHUNCK SIZE的情况 CLOB数据可以导出到与其他列相同的文件中,或存储到单独的文件中 LOB列只有在SYSTEM表空间存在的情况下才能导出 支持多种字符集之间的转换,能够正确的转换CLOB、NCLOB、NVARCHAR2列类型的数据到指定的字符集。 ODU全面支持64位系统,支持超过4G大小的数据文件。 支持复制操作系统命令不能复制的坏文件 模拟oracle的dump块功能,能够dump数据文件块的数据 目前不支持的功能:11g的SecureFiles ------------------------详细使用说明见 http://www.laoxiong.net/odu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被开发耽误的大厨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值