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

http://www.lryc.cn/news/543116.html

相关文章:

  • 常见的“锁”有哪些?
  • 二级公共基础之数据库设计基础(一) 数据库系统的基本概念
  • ollama无法通过IP:11434访问
  • 简单易懂,解析Go语言中的struct结构体
  • java给钉钉邮箱发送邮件
  • C++和OpenGL实现3D游戏编程【连载23】——几何着色器和法线可视化
  • 大连本地知识库的搭建--数据收集与预处理_01
  • github 推送的常见问题以及解决
  • stm32单片机个人学习笔记16(SPI通信协议)
  • Linux | RHEL / CentOS 中 YUM history / downgrade 命令回滚操作
  • BGP状态和机制
  • 温湿度监控设备融入智慧物联网
  • smolagents学习笔记系列(五)Tools-in-depth-guide
  • 前端面试真题 2025最新版
  • 面试八股文--数据库基础知识总结(1)
  • 10. docker nginx官方镜像使用方法
  • [Web 安全] PHP 反序列化漏洞 —— PHP 反序列化漏洞演示案例
  • es-head(es库-谷歌浏览器插件)
  • 第二十:【路由的props配置】
  • Vue 2全屏滚动动画实战:结合fullpage-vue与animate.css打造炫酷H5页面
  • AF3 DataPipeline类process_pdb 方法解读
  • 抓包工具 wireshark
  • OpenBMC:BmcWeb app获取socket
  • 《深度学习实战》第2集-补充:卷积神经网络(CNN)与图像分类 实战代码解析和改进
  • nodejs:express + js-mdict 作为后端,vue 3 + vite 作为前端,在线查询英汉词典
  • 《深度剖析Linux 系统 Shell 核心用法与原理_666》
  • 索提诺比率(Sortino Ratio):更精准的风险调整收益指标(中英双语)
  • minio作为K8S后端存储
  • 一周学会Flask3 Python Web开发-Jinja2模板访问对象
  • RAGS评测后的数据 如何利用influxdb和grafan 进行数据汇总查看