模块
在应用程序的开发过程中,随着开发进程的增长,代码会越来越多,可维护性也会越来越低。为了保证应用程序的可维护性,我们就会把一些函数分开,分别放在不同的文件中,再引入使用。这样就能提高代码的可维护性,当其他应用程序也需要使用部分相同的功能时也能直接引用,这种方式就是模块化。
在JavaScript中,编写一个模块时,需要按照模块的编写规范,这样在使用时才能识别出该模块。而在一个Nodejs的应用程序中,模块以及如何编写并使用模块是基本组成部分。
自定义模块
在编写自定义模块时,需要在编写结束后使用exports或者module.exports导出,就类似U盘的插口,给使用者暴露一个入口,然后在使用时,使用require导入。
导出
// sum.js
var sum = function(a, b){
return parseInt(a) + parseInt(b);
}
// 导出模块
exports.sum = sum;
// 也可以写成
// module.exports.sum = sum;
导入
// main.js
// 导入模块
var module = require('./sum.js');
console.log(module.sum(1, 2)); // 3
模块细节
- 已经加载的模块会被缓存,以提高加载性能,根据加载的路径来判断是否加载过。
- 加载文件的后缀
.js可以省略。模块文件常见结尾后缀有.js、.json、.node,注意省略后缀,若在同一个目录中出现文件名相同后缀名不同的话,加载的顺序如下:.js.json.node
内置模块
Nodejs也有内置的模块以供开发人员使用,分别是:
- fs:文件操作模块;
- http:网络操作模块;
- path:路径操作模块;
- querystring:查询参数解析模块;
- url:url解析模块; 引用的方式与自定义模块一样,后续将会详细学习其中重要的几个模块。
const fs = require("fs");
const http = require('http');
const path = require('path');
const querystring = require('querystring');
const url = require('url');