文章目录

Node.js 核心模块:fs、path、http 模块

发布于 2026-04-06 23:03:01 · 浏览 9 次 · 评论 0 条

Node.js 核心模块:fs、path、http 模块

直接掌握 Node.js 开发中最常用的三个内置模块,即可完成文件读写、路径拼接与本地服务器搭建。无需安装第三方依赖,开箱即用。以下指南按实际开发顺序拆解具体操作。


使用 fs 模块操作文件系统

fs 模块全称为文件系统模块,用于让 JavaScript 直接读写计算机硬盘中的文件。现代 Node.js 推荐使用 fs/promises 配合异步语法,避免代码嵌套混乱。

  1. 创建 项目基础目录。打开系统终端,输入 mkdir node-core-demo && cd node-core-demo执行。随后 运行 npm init -y 生成默认配置文件。
  2. 新建 操作脚本。在目录内创建名为 file-ops.js 的纯文本文件。
  3. 编写 读写逻辑。将以下代码完整粘贴至脚本中:
    
    const fs = require('fs/promises');

async function manageFiles() {
try {
const targetFile = 'data.log';
// 向硬盘写入字符串
await fs.writeFile(targetFile, '系统初始化完成\n核心模块加载成功', 'utf-8');
console.log('写入动作结束');
// 读取硬盘内容
const logContent = await fs.readFile(targetFile, 'utf-8');
console.log('读取结果:', logContent);
// 删除测试文件释放空间
await fs.unlink(targetFile);
console.log('清理动作结束');
} catch (error) {
console.error('中断原因:', error.message);
}
}
manageFiles();

4. **运行** 验证脚本。终端 **输入** `node file-ops.js` 并 **回车**。控制台将按顺序打印写入状态、文件内容以及清理状态。若终端返回 `EACCES` 错误,说明当前用户缺乏该目录的磁盘写入权限,**需使用** 管理员权限重新打开终端。

---

## 使用 path 模块处理文件路径

`path` 模块专门解决跨系统路径分隔符差异问题。Windows 系统默认使用反斜杠 `\`,而 macOS 与 Linux 系统使用正斜杠 `/`。手动拼接字符串极易导致路径断裂,必须依赖该模块自动适配。

1. **创建** 路径测试脚本。在同级目录新建 `path-utils.js`。
2. **引入** 内置模块。在文件顶部 **输入** `const path = require('path');` 并 **保存**。
3. **调用** 路径拼接方法。在文件中 **追加** 以下代码段:
```javascript
const path = require('path');

// 智能拼接目录与文件名,自动匹配当前操作系统的斜杠方向
const safePath = path.join(__dirname, 'uploads', 'images', 'avatar.jpg');
console.log('拼接结果:', safePath);

// 将相对路径强制转换为绝对路径,消除歧义
const absolutePath = path.resolve('./config.json');
console.log('绝对定位:', absolutePath);

// 提取文件后缀名与基础名称
const ext = path.extname('document.tar.gz');
const base = path.basename('/root/config/settings.ini');
console.log('提取后缀:', ext);
console.log('提取文件名:', base);
  1. 执行 测试命令。终端 输入 node path-utils.js回车。对比输出结果,确认斜杠方向已自动匹配系统环境,且 path.extname 能够精准识别多级后缀。
  2. 防范 路径穿越漏洞。处理用户上传路径时,使用 path.resolve() 结合 判断 方法,确保最终路径始终限制在项目安全目录内,严禁直接拼接未过滤的外部输入参数。

使用 http 模块搭建本地服务器

http 模块提供创建网络通信端点的基础能力。不依赖任何第三方框架,即可让本机接收浏览器请求并返回文本、JSON 或 HTML 数据。

  1. 创建 服务器启动文件。新建 web-server.js
  2. 构建 请求处理流。将完整服务代码写入文件:
    
    const http = require('http');

const server = http.createServer((request, response) => {
// 配置响应头,告知浏览器返回数据格式与编码
response.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });

// 拦截不同 URL 返回对应数据
switch (request.url) {
case '/':
response.end('服务器根路径响应正常');
break;
case '/health':
response.end('运行状态: 在线');
break;
default:
response.writeHead(404);
response.end('请求资源未找到');
}
});

// 绑定监听网络端口
server.listen(8080, () => {
console.log('监听已开启: 127.0.0.1:8080');
});


3. **启动** 后台服务。终端 **输入** `node web-server.js`。控制台打印监听提示后,进程将保持阻塞状态等待外部连接,此属正常服务行为。
4. **发送** 测试请求。另开一个终端窗口或打开浏览器地址栏,**输入** `http://127.0.0.1:8080/health` 并 **访问**。页面或终端将准确返回 `运行状态: 在线` 文本。
5. **停止** 监听进程。完成调试后,在运行 `node` 命令的终端窗口中 **按下** `Ctrl + C` **强制中断**。端口占用随即解除,系统恢复初始状态。

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文