模块化简介:
模块化的开发方式可以提供代码复用率,方便进行代码的管理。. 通常来说, 一个文件就是一个模块,有自己的作用域,只向外暴露特定的变量和函数 。
更详细的模块化介绍:nodejs中的模块化_liuyuhua666的博客-CSDN博客_nodejs模块化
在node中,一个js文件就是一个模块。在node中,每一个js文件中的js代码 都是独立运行在一个函数中(function(){....})()而不是全局作用域,所以一个模块中的变量和函数在其他模块中无法访问。
如何模块化:
1.导出外部模块:
我们可以通过 exports 来向外部暴露变量和方法,只需要将需要暴露给外部的变量或方法设置为exports的属性即可。
exports.x = 100
exports.fn = function(){}
Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到。
模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块。
2.引入其他的模块:
在node中,通过require()函数来引入外部的模块。
require() 可以传递一个文件的路径作为参数,node将会自动根据该路径来引入外部模块。
这里路径,如果使用相对路径,必须以.或..开头。
使用require()引入模块以后,该函数会返回一个对象,这个对象代表的是引入的模块。
例如:
将加法的方法引入到别的模块中
模块标识
我们使用require()引入外部模块时,使用的就是模块标识。
例如:
这就是一个模块标识
我们可以通过模块标识来找到指定的模块。
模块的分类:
核心模块:
1.由node引擎提供的模块
2.核心模块的标识就是模块的名字(或者npm下载的模块,都是直接写名字)
文件模块:
1.由用户自己创建
2.文件模块的标识就是文件的路径(可以是绝对路径 或 先相对路径)
相对路径使用 . 或 .. 开头
核心模块和文件模块的详解: node.js 学习笔记(四)核心模块 - smile小吴 - 博客园 (cnblogs.com)
系统模块
Node运行环境提供的API.因为这届API都是以模块haul的方式进行开发的,所有我们又成Node运行环境提供的API为系统模块
系统模块fs文件操作:
fs 模块是文件操作的封装,它提供了文件的读取、写入、更名、删除、遍历目录、链接等 Unix 文件系统操作。 与其他模块不同的是,fs 模块中所有的操作都提供了 同步 和 异步 两个版本,比如读取文件内容的函数有 异步的fs.readFile () 和 同步的 fs.readFileSync ().
nodejs文件操作详解:
NodeJS 文件操作 —— fs 基本使用_github_38140984的博客-CSDN博客_nodejs文件操作
文件
f:file 文件 ,s:system 系统,文件系统。
const fs = require('fs');
读取文件内容
fs.readFile('文件路径/文件名称'[,'文件编码'], callback);
写入文件内容:
fs.writeFile('文件路径/文件名称', '数据', callback);
const content = '<h3>正在使用fs.writeFile写入文件内容</h3>';
fs.writeFile('../index.html',
content, err =>
{if (err != null) {
console.log(err);
return;
}
console.log('文件写入成功');
});
系统模块path路径操作:
使用系统路径的条件:要进行路径拼接,不同操作系统的路径分隔符不统一
系统模块path路径操作详解:
Node入门教程(8)第六章:path 模块详解 - FlyDragon - 博客园 (cnblogs.com)
/public/uploads/avatar
Windows 上是 \ /
Linux 上是 /
路径拼接语法:
path.join('路径', '路径', ...)
// 导入path模块
const path = require('path');
// 路径拼接
let finialPath = path.join('itcast', 'a', 'b', 'c.css');
// 输出结果 itcast\a\b\c.css
console.log(finialPath);
相对路径VS绝对路径:
大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作目录
在读取文件或者设置文件路径时都会选择绝对路径
使用__dirname获取当前文件所在的绝对路径
第三方模块
第三方模块:别人写好的、具有特定功能的、我们能直接使用的模块即第三方模块,由于第三方模块通常都是由多个文件组成并且被放置在一个文件夹中,所以又名包。
第三方模块有两种存在方式:
1.以js文件的形式存在,提供实现项目具体功能的API接口。
2.以命令行工具形式存在,辅助项目开发。
3.npmjs.com:第三方模块的存储和分发仓库。
第三方模块 nodemon
nodemon是一个命令行工具,用以辅助项目开发。
在Node.js中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐。
使用步骤:
1.(在集成终端中)使用npm install nodemon –g 下载它
2.在命令行工具中用nodemon命令替代node命令执行文件