目录
[1. fs(文件系统)模块](#1. fs(文件系统)模块)
[2. http 模块](#2. http 模块)
[3. path 模块](#3. path 模块)
[4. os 模块](#4. os 模块)
[5. events 模块](#5. events 模块)
[6. crypto 模块](#6. crypto 模块)
1. fs
(文件系统)模块
fs
模块提供了与文件系统进行交互的功能,包括文件的读写、删除、重命名等操作。它有同步和异步两种操作方式,异步操作能避免阻塞事件循环,在处理大量文件或高并发场景中更常用。
示例:异步读取文件内容
javascript
const fs = require('fs');
// 异步读取文件
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error('读取文件时出错:', err);
return;
}
console.log('文件内容:', data);
});
上述代码使用 fs.readFile
异步读取 example.txt
文件的内容,'utf8'
参数指定了文件的编码格式,读取完成后通过回调函数处理结果。
2. http
模块
http
模块用于创建 HTTP 服务器和客户端,是构建 Web 应用和 API 的基础。
示例:创建一个简单的 HTTP 服务器
javascript
const http = require('http');
// 创建服务器
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, World!\n');
});
// 监听端口
server.listen(3000, '127.0.0.1', () => {
console.log('服务器运行在 http://127.0.0.1:3000/');
});
此代码通过 http.createServer
创建了一个 HTTP 服务器,当有请求到来时,设置响应状态码、响应头,并返回 Hello, World!
信息。最后使用 listen
方法监听 3000 端口。
3. path
模块
path
模块提供了处理和转换文件路径的实用工具,能确保在不同操作系统上路径的正确性。
示例:处理文件路径
javascript
const path = require('path');
// 拼接路径
const filePath = path.join(__dirname, 'public', 'index.html');
console.log('拼接后的文件路径:', filePath);
// 获取文件扩展名
const extname = path.extname(filePath);
console.log('文件扩展名:', extname);
path.join
方法用于拼接多个路径片段,__dirname
表示当前脚本所在的目录。path.extname
方法用于获取文件的扩展名。
4. os
模块
os
模块提供了与操作系统进行交互的实用方法和属性,可获取系统信息。
示例:获取系统内存信息
javascript
const os = require('os');
// 获取系统总内存
const totalMemory = os.totalmem();
console.log('系统总内存:', totalMemory, '字节');
// 获取系统空闲内存
const freeMemory = os.freemem();
console.log('系统空闲内存:', freeMemory, '字节');
os.totalmem
方法返回系统的总内存量,os.freemem
方法返回系统的空闲内存量。
5. events
模块
events
模块是 Node.js 中事件驱动编程的基础,通过 EventEmitter
类实现事件的发布和订阅机制。
示例:自定义事件的发布和订阅
javascript
const EventEmitter = require('events');
// 创建事件发射器实例
const myEmitter = new EventEmitter();
// 定义事件处理函数
const myEventHandler = () => {
console.log('事件被触发了!');
};
// 订阅事件
myEmitter.on('myEvent', myEventHandler);
// 发布事件
myEmitter.emit('myEvent');
上述代码创建了一个 EventEmitter
实例,使用 on
方法订阅 myEvent
事件,使用 emit
方法发布该事件,当事件发布时,对应的事件处理函数会被调用。
6. crypto
模块
crypto
模块提供了加密和解密功能,可用于数据的加密、哈希计算等。
示例:计算字符串的 SHA - 256 哈希值
javascript
const crypto = require('crypto');
const data = 'Hello, World!';
const hash = crypto.createHash('sha256').update(data).digest('hex');
console.log('SHA - 256 哈希值:', hash);
crypto.createHash
方法创建一个哈希对象,update
方法用于更新要计算哈希值的数据,digest
方法将计算结果以十六进制字符串的形式输出。