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 方法将计算结果以十六进制字符串的形式输出。
相关文章:
Node.js 内置模块简介(带示例)
目录 1. fs(文件系统)模块 2. http 模块 3. path 模块 4. os 模块 5. events 模块 6. crypto 模块 1. fs(文件系统)模块 fs 模块提供了与文件系统进行交互的功能,包括文件的读写、删除、重命名等操作。它有同步…...
常见的“锁”有哪些?
悲观锁 悲观锁认为在并发环境中,数据随时可能被其他线程修改,因此在访问数据之前会先加锁,以防止其他线程对数据进行修改。常见的悲观锁实现有: 1.互斥锁 原理:互斥锁是一种最基本的锁类型,同一时间只允…...
二级公共基础之数据库设计基础(一) 数据库系统的基本概念
目录 前言 一、数据库、数据管理系统和数据库系统 1.数据 2.数据库 3.数据库管理系统 1.数据库管理系统的定义 2.数据库管理系统的功能 1.数据定义功能 2.数据操作功能 3.数据存取控制 4.数据完整性管理 5.数据备份和恢复 6.并发控制 4.数…...
ollama无法通过IP:11434访问
目录 1.介绍 2.直接在ollama的当前命令窗口中修改(法1) 3.更改ollama配置文件(法2) 3.1更新配置 3.2重启服务 1.介绍 ollama下载后默认情况下都是直接在本地的11434端口中运行,绑定到127.0.0.1(localhost)&#x…...
简单易懂,解析Go语言中的struct结构体
目录 4. struct 结构体4.1 初始化4.2 内嵌字段4.3 可见性4.4 方法与函数4.4.1 区别4.4.2 闭包 4.5 Tag 字段标签4.5.1定义4.5.2 Tag规范4.5.3 Tag意义 4. struct 结构体 go的结构体类似于其他语言中的class,主要区别就是go的结构体没有继承这一概念,但可…...
java给钉钉邮箱发送邮件
1.开通POP和IMAP 2.引入pom <dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version> </dependency>3.逻辑 String host "smtp.qiye.aliyun.com"; String port "…...
C++和OpenGL实现3D游戏编程【连载23】——几何着色器和法线可视化
欢迎来到zhooyu的C++和OpenGL游戏专栏,专栏连载的所有精彩内容目录详见下边链接: 🔥C++和OpenGL实现3D游戏编程【总览】 1、本节实现的内容 上一节课,我们在Blend软件中导出经纬球模型时,遇到了经纬球法线导致我们在游戏中模型光照显示问题,我们在Blender软件中可以通过…...
大连本地知识库的搭建--数据收集与预处理_01
1.马蜂窝爬虫 编程语言:Python爬虫框架:Selenium(用于浏览器自动化)解析库:BeautifulSoup(用于解析HTML) 2.爬虫策略 目标网站:马蜂窝(https://www.mafengwo.cn/&…...
github 推送的常见问题以及解决
文章目录 git add 的时候问题1为什么会发生这种情况?Git 的警告含义如何解决?1. **保持 Git 的默认行为(推荐)**2. **禁用自动转换**3. **仅在工作目录中禁用转换**4. **统一使用 LF(跨平台开发推荐)** git…...
stm32单片机个人学习笔记16(SPI通信协议)
前言 本篇文章属于stm32单片机(以下简称单片机)的学习笔记,来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记,只能做参考,细节方面建议观看视频,肯定受益匪浅。 STM32入门教程-2023版 细…...
Linux | RHEL / CentOS 中 YUM history / downgrade 命令回滚操作
注:英文引文,机翻未校。 在 RHEL/CentOS 系统上使用 YUM history 命令回滚升级操作 作者: 2daygeek 译者: LCTT DarkSun 为服务器打补丁是 Linux 系统管理员的一项重要任务,为的是让系统更加稳定,性能更加…...
BGP状态和机制
BGP邻居优化 为了增加稳定性,通常建议实验回环口来建立邻居。更新源:建立邻居和邻居所学习到的路由的下一跳。多跳:EBGP邻居建立默认选哟直连,因为TTL=1,如果非直连,必须修改TTL。命令备注peer 2.2.2.2 connect-interface lo1配置更新源peer 2.2.2.2 ebgp-max-hop 2配置T…...
温湿度监控设备融入智慧物联网
当医院的温湿度监控设备融入智慧物联网,将会带来许多新的体验,可以帮助医院温湿度监控设备智能化管理,实现设备之间的互联互通,方便医院对温湿度数据进行统一管理和分析。 添加智慧物联网技术,实现对医院温湿度的实时…...
smolagents学习笔记系列(五)Tools-in-depth-guide
这篇文章锁定官网教程中的 Tools-in-depth-guide 章节,主要介绍了如何详细构造自己的Tools,在之前的博文 smolagents学习笔记系列(二)Agents - Guided tour 中我初步介绍了下如何将一个函数或一个类声明成 smolagents 的工具&…...
前端面试真题 2025最新版
文章目录 写在前文CSS怪异盒模型JS闭包闭包的形成闭包注意点 CSS选择器及优先级优先级 说说flex布局及相关属性Flex 容器相关属性:Flex 项目相关属性 响应式布局如何实现是否用过tailwindcss,有哪些好处好处缺点 说说对象的 prototype属性及原型说说 pro…...
面试八股文--数据库基础知识总结(1)
1、数据库的定义 数据库(DataBase,DB)简单来说就是数据的集合数据库管理系统(Database Management System,DBMS)是一种操纵和管理数据库的大型软件,通常用于建立、使用和维护数据库。数据库系统…...
10. docker nginx官方镜像使用方法
本文介绍docker nginx官方镜像使用方法,因为第一次用,在加上对docker也不是很熟,中间踩了一些坑,为了避免下一次用又踩坑,因此记录如下,也希望能够帮到其它小伙伴。 官方镜像页面:https://hub.d…...
[Web 安全] PHP 反序列化漏洞 —— PHP 反序列化漏洞演示案例
关注这个专栏的其他相关笔记:[Web 安全] 反序列化漏洞 - 学习笔记-CSDN博客 PHP 反序列化漏洞产生原因 PHP 反序列化漏洞产生的原因就是因为在反序列化过程中,unserialize() 接收的值可控。 0x01:环境搭建 这里笔者是使用 PhpStudy 搭建的环…...
es-head(es库-谷歌浏览器插件)
1.下载es-head插件压缩包,并解压缩 2.谷歌浏览器添加插件 3.使用...
第二十:【路由的props配置】
作用:让路由组件更方便的收到参数(可以将路由参数作为props传给组件) {name:xiang,path:detail/:id/:title/:content,component:Detail, 第一种方法:// props的对象写法,作用:把对象中的每一组key-valu…...
HunyuanVideo-Foley效果展示:AI生成气候变迁声音档案(冰川消融/森林火灾)
HunyuanVideo-Foley效果展示:AI生成气候变迁声音档案(冰川消融/森林火灾) 1. 技术背景与镜像介绍 HunyuanVideo-Foley是一款专注于视频生成与音效合成的AI模型,其私有部署镜像针对RTX 4090D 24GB显存进行了深度优化。这个镜像开…...
初认识测试
前言: 什么是测试,测试在我们的生活中随处可见,比如你要买一件衣服,首先你可能是因为这件衣服的样式吸引了你,这其实就是外貌测试,然后呢,你就询问这件衣服的品质,看是不是你的需求&…...
Cesium 热力图:从原理到实战,打造三维空间数据可视化利器
1. 为什么需要Cesium热力图? 当你在处理地理空间数据时,经常会遇到这样的场景:手上有成百上千个带有经纬度和数值的坐标点,比如气象站的温度数据、共享单车的分布密度、城市人口热力分布等。如果直接在三维地图上用点标记展示&…...
猫抓插件终极指南:简单三步下载网页所有视频音频
猫抓插件终极指南:简单三步下载网页所有视频音频 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经在网上看到一个精彩的视频想…...
Qwen3.5-4B-Claude-Opus效果集:编译器后端寄存器分配策略生成
Qwen3.5-4B-Claude-Opus效果集:编译器后端寄存器分配策略生成 1. 模型概述 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是一个专注于结构化分析和逻辑推理的轻量级AI模型。这个基于Qwen3.5-4B的推理蒸馏版本特别强化了处理代码生成、算法解释和编译器相…...
Edge-SR实战:如何用边缘信息提升图像超分辨率重构效果(附代码)
Edge-SR实战:如何用边缘信息提升图像超分辨率重构效果(附代码) 在数字图像处理领域,超分辨率重构技术一直是研究热点。传统方法往往面临高频细节丢失、边缘模糊等问题,而Edge-SR通过巧妙利用边缘信息,为这一…...
前视声呐图像处理避坑指南:从像素坐标到真实距离/角度的转换原理与YOLO集成
前视声呐图像处理避坑指南:从像素坐标到真实距离/角度的转换原理与YOLO集成 水下机器人视觉系统的核心挑战之一,是如何准确解读前视声呐生成的二维图像。与光学相机不同,声呐图像中的每个像素点背后都隐藏着复杂的物理测量原理。许多工程师在…...
免费获取中国乡镇边界数据的另类方法:Bigemap隐藏功能揭秘
解锁Bigemap高阶技巧:精准获取乡镇级地理数据的实战指南 对于GIS开发者和数据分析师而言,获取精确到乡镇级别的边界数据往往意味着项目可行性的分水岭。市面上常见的开放数据平台通常只提供到区县级的地理信息,而专业GIS服务商的高精度数据又…...
**元宇宙社交新范式:基于Rust 构建去中心化虚拟身份系统**在元宇宙浪潮
元宇宙社交新范式:基于 Rust 构建去中心化虚拟身份系统 在元宇宙浪潮席卷全球的今天,社交不再是简单的文字与图像传递,而是沉浸式、可交互、可验证的身份空间构建。传统社交平台依赖中心化服务器认证用户身份,存在隐私泄露、数据孤…...
CYBER-VISION零号协议Win11系统优化与定制指南
CYBER-VISION零号协议Win11系统优化与定制指南 每次打开电脑,看着Windows 11那个有点陌生的界面,你是不是偶尔会怀念Windows 10那种“一切尽在掌握”的感觉?尤其是那个右键菜单,想找个“刷新”或者“新建文件夹”,还得…...
