Node.js 核心模块技术文档
本技术文档介绍了 Node.js 的核心模块,包括功能介绍和实际代码示例,旨在帮助开发者更高效地使用这些模块。
1. 文件系统模块 (fs)
fs
模块用于与文件系统交互,提供文件读取、写入等功能。
示例
- 读取文件内容
const fs = require('fs');
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
console.log(data);
});
- 写入文件内容
const fs = require('fs');
fs.writeFile('example.txt', 'Hello, World!', (err) => {
if (err) {
console.error(err);
return;
}
console.log('文件写入成功!');
});
2. 路径模块 (path)
path
模块用于处理文件和目录路径。
示例
- 拼接路径
const path = require('path');
const fullPath = path.join('/user', 'local', 'bin');
console.log(fullPath); // 输出: /user/local/bin
- 解析路径
const path = require('path');
const filePath = '/user/local/example.txt';
const parsed = path.parse(filePath);
console.log(parsed);
3. HTTP 模块 (http)
http
模块用于创建 HTTP 服务器和客户端。
示例
- 创建 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, () => {
console.log('服务器运行在 http://localhost:3000/');
});
- 发送 HTTP 请求
const http = require('http');
const options = {
hostname: 'example.com',
port: 80,
path: '/',
method: 'GET',
};
const req = http.request(options, (res) => {
console.log(`状态码: ${res.statusCode}`);
res.on('data', (chunk) => {
console.log(`响应体: ${chunk}`);
});
});
req.on('error', (error) => {
console.error(`请求错误: ${error.message}`);
});
req.end();
4. 操作系统模块 (os)
os
模块提供与操作系统相关的实用方法和属性。
示例
- 获取系统信息
const os = require('os');
console.log('操作系统平台:', os.platform());
console.log('CPU 架构:', os.arch());
console.log('系统内存总量:', os.totalmem());
5. 加密模块 (crypto)
crypto
模块提供加密功能,包括哈希、加密和解密等。
示例
- 生成 SHA-256 哈希
const crypto = require('crypto');
const hash = crypto.createHash('sha256');
hash.update('Hello, Node.js!');
console.log('SHA-256 哈希值:', hash.digest('hex'));
6. URL 模块 (url)
url
模块用于解析和格式化 URL。
示例
- 解析 URL
const url = require('url');
const myURL = new URL('https://example.com:8000/path/name?query=value#hash');
console.log('主机名:', myURL.hostname); // 输出: example.com
console.log('路径名:', myURL.pathname); // 输出: /path/name
console.log('查询参数:', myURL.searchParams.get('query')); // 输出: value
7. 事件模块 (events)
events
模块用于实现事件驱动的编程。
示例
- 创建事件发射器
const EventEmitter = require('events');
const emitter = new EventEmitter();
emitter.on('greet', (name) => {
console.log(`Hello, ${name}!`);
});
emitter.emit('greet', 'Alice');
8. 流模块 (stream)
stream
模块用于处理流数据。
示例
- 读取文件流
const fs = require('fs');
const readStream = fs.createReadStream('example.txt', 'utf8');
readStream.on('data', (chunk) => {
console.log(`读取到数据: ${chunk}`);
});
readStream.on('end', () => {
console.log('读取结束');
});
9. 查询字符串模块 (querystring)
querystring
模块用于解析和格式化 URL 查询字符串。
示例
- 解析查询字符串
const querystring = require('querystring');
const parsed = querystring.parse('name=Alice&age=30');
console.log(parsed.name); // 输出: Alice
console.log(parsed.age); // 输出: 30
10. 子进程模块 (child_process)
child_process
模块用于创建子进程,以执行外部命令或脚本。
示例
- 执行外部命令
const { exec } = require('child_process');
exec('ls -l', (err, stdout, stderr) => {
if (err) {
console.error(`执行错误: ${err}`);
return;
}
console.log(`标准输出:\n${stdout}`);
console.error(`标准错误:\n${stderr}`);
});
这些核心模块为 Node.js 提供了强大的功能支持,帮助开发者高效地构建各种应用程序。