NodeJs常用模块

person 有无相生    watch_later 2024-08-10 10:09:22
visibility 208    class NodeJs,fs,path    bookmark 专栏

学习 Node.js 的核心模块是掌握 Node.js 编程的关键步骤。以下是对 fspathhttpeventsosutilstream 等核心模块的详细介绍和使用示例。

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 应用程序。

评论区
评论列表
menu