Node.js 内置模块简介(带示例)

发布于:2025-02-26 ⋅ 阅读:(114) ⋅ 点赞:(0)

目录

1. fs(文件系统)模块

2. http 模块

3. path 模块

4. os 模块

5. events 模块

6. crypto 模块


1. fs(文件系统)模块

fs 模块提供了与文件系统进行交互的功能,包括文件的读写、删除、重命名等操作。它有同步和异步两种操作方式,异步操作能避免阻塞事件循环,在处理大量文件或高并发场景中更常用。

示例:异步读取文件内容

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 服务器

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 模块提供了处理和转换文件路径的实用工具,能确保在不同操作系统上路径的正确性。

示例:处理文件路径

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 模块提供了与操作系统进行交互的实用方法和属性,可获取系统信息。

示例:获取系统内存信息

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 类实现事件的发布和订阅机制。

示例:自定义事件的发布和订阅

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 哈希值

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 方法将计算结果以十六进制字符串的形式输出。


网站公告

今日签到

点亮在社区的每一天
去签到