当前位置: 首页 > news >正文

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

目录

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

相关文章:

  • axios几种请求类型的格式
  • 作业day5
  • 【Git】六、企业级开发模型
  • Hbase使用shell命令语句大全
  • 基于数据可视化+SpringBoot+安卓端的数字化OA公司管理平台设计和实现
  • 网络安全防御:蓝队重保备战与应急溯源深度解析
  • Django笔记1_简介
  • python与C系列语言的差异总结(4)
  • Java进阶学习笔记64——IO流
  • Linux下启动redis
  • C/C++基础知识复习(47)
  • JAVAweb之过滤器,监听器
  • Linux操作与权限2
  • git clone 后本地文件夹中只有 REDEME.md
  • Elasticsearch 相关面试题
  • 自学Linux系统软件编程第四天
  • bash快捷键完整版
  • 姿态矩阵/旋转矩阵/反对称阵
  • Docker root用户运行容器与非root用户运行容器的差异和注意事项(root容器、root用户容器)(特权端口)
  • 大模型在尿潴留风险预测及围手术期方案制定中的应用研究
  • 首届中国人文学科年度发展大会启幕,共话AI时代人文使命
  • 2025年上海科技节开幕,人形机器人首次登上科学红毯
  • 新时代,新方志:2025上海地方志论坛暨理论研讨会举办
  • 盐城经济技术开发区党工委书记王旭东接受纪律审查和监察调查
  • 爬坡难下坡险,居民出行难题如何解?
  • 试点首发进口消费品检验便利化措施,上海海关与上海商务委发文