🔍 登录 注册

NodeJs常用模块

大 大苹果 2024-08-10 algorithm 👁 13 ⏱ 4min

学习 Node.js 的核心模块是掌握 Node.js 编程的关键步骤。以下是对 fs、path、http、events、os、util、stream 等核心模块的详细介绍和使用示例。

1. fs 模块(文件系统)

  • 功能:fs 模块提供了与文件系统进行交互的方法,包括文件的读写、删除、重命名等操作。
  • 常用方法:
    • fs.readFile():异步读取文件内容。
    • fs.writeFile():异步写入文件内容。
    • fs.readdir():读取目录内容。
    • fs.stat():获取文件或目录的状态信息。

示例:

const fs = require('fs');

// 读取文件
fs.readFile('example.txt', 'utf8', (err, data) => {
    if (err) throw err;
    console.log(data);
});

// 写入文件
fs.writeFile('output.txt', 'Hello, Node.js!', (err) => {
    if (err) throw err;
    console.log('File has been saved!');
});

2. path 模块

  • 功能:path 模块用于处理和转换文件路径。
  • 常用方法:
    • path.join():拼接路径片段,生成规范化路径。
    • path.resolve():将路径或路径片段解析为绝对路径。
    • path.basename():返回路径的最后一部分(文件名)。
    • path.extname():返回路径中文件的扩展名。

示例:

const path = require('path');

// 拼接路径
const fullPath = path.join(__dirname, 'folder', 'file.txt');
console.log(fullPath); // 输出: /当前路径/folder/file.txt

// 获取文件名
const fileName = path.basename(fullPath);
console.log(fileName); // 输出: file.txt

// 获取扩展名
const extName = path.extname(fullPath);
console.log(extName); // 输出: .txt

3. http 模块

  • 功能:http 模块提供了创建 HTTP 服务器和客户端的功能。
  • 常用方法:
    • http.createServer():创建一个 HTTP 服务器对象。
    • server.listen():服务器开始监听连接。

示例:

const http = require('http');

// 创建 HTTP 服务器
const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end('Hello, World!\n');
});

// 服务器监听端口 3000
server.listen(3000, () => {
    console.log('Server running at http://127.0.0.1:3000/');
});

4. events 模块

  • 功能:events 模块提供了创建和监听事件的功能,是 Node.js 事件驱动架构的核心。
  • 常用方法:
    • EventEmitter.on():绑定事件处理函数。
    • EventEmitter.emit():触发事件。

示例:

const EventEmitter = require('events');
const myEmitter = new EventEmitter();

// 监听事件
myEmitter.on('event', () => {
    console.log('An event occurred!');
});

// 触发事件
myEmitter.emit('event');

5. os 模块

  • 功能:os 模块提供了与操作系统相关的信息,如内存、CPU、平台等。
  • 常用方法:
    • os.cpus():获取系统的 CPU 信息。
    • os.totalmem():获取系统总内存。
    • os.platform():获取操作系统平台。

示例:

const os = require('os');

console.log('Platform:', os.platform()); // 输出操作系统平台
console.log('Total Memory:', os.totalmem()); // 输出总内存
console.log('CPU Info:', os.cpus()); // 输出 CPU 信息

6. util 模块

  • 功能:util 模块提供了工具函数,用于处理和转换数据。
  • 常用方法:
    • util.promisify():将回调风格的函数转换为返回 Promise 的函数。
    • util.format():格式化字符串。

示例:

const util = require('util');
const fs = require('fs');

// 将 fs.readFile 转换为返回 Promise 的函数
const readFile = util.promisify(fs.readFile);

readFile('example.txt', 'utf8')
    .then(data => console.log(data))
    .catch(err => console.error(err));

7. stream 模块

  • 功能:stream 模块提供了处理流数据的接口,包括可读流、可写流、双工流和转换流。
  • 常用方法:
    • fs.createReadStream():创建可读文件流。
    • fs.createWriteStream():创建可写文件流。

示例:

const fs = require('fs');

// 创建可读流
const readable = fs.createReadStream('input.txt');

// 创建可写流
const writable = fs.createWriteStream('output.txt');

// 将可读流的数据通过管道传输到可写流
readable.pipe(writable);

总结

Node.js 的核心模块提供了丰富的功能,可以满足服务器端开发的大部分需求。通过掌握这些模块,你将能够更高效地处理文件、路径、网络请求、事件、操作系统信息等,从而构建出强大且高效的 Node.js 应用程序。

读完了?给作者一点支持

本文采用 CC BY 4.0 协议转载 · © 大苹果

评论(0)

登录 后参与评论。

  • 还没有评论,来抢沙发。

🔗 相关文章

动态规划从入门到进阶:状态设计与空间优化的完整方法论

从暴力递归到记忆化与递推,覆盖背包、区间、状态压缩等模型,给出动态规划状态设计与空间优化的完整方法论。

21 天前👍 0

Go 排序算法实战:从冒泡到 TimSort 的复杂度与工程取舍

用 Go 实现九种经典排序,剖析复杂度、稳定性与适用场景,并拆解标准库 sort 背后的 introsort 工程取舍。

21 天前👍 0

RabbitMQ 标准队列

RabbitMQ 标准队列(Classic Queue)是消息传递系统中最基本的队列类型,消息按先进先出(FIFO)的顺序存储和传递。以下是标准队列的常见应用场景和详细说明: ### 1. **任务队列(Task Queue)** - **场景描述**:在后台处理任务时,如图像处理、视频转码、数据分析等,需要将任务分配给多个工作节点进行处理,避免阻塞主应用。 - **应用说明**:在任务队列中,每个任务都会被推送到 RabbitMQ 的标准队列中,多个消费者从队列中获取任务并处理,任务处理完毕后删除队列中的消息。 - **举例**: - **应用**:电商网站后台处理订单数据,如生成发货单、发送确认邮件等。这些任务可以异步处理,以提高系统的响应速度。 - **代码示例(Node.js)**: ```javascript // 生产者:将任务添加到队列 const amqp = require('amqplib/callback_api'); amqp.connect('amqp://localhost', func

2024/8/11👍 0