Node.js 中有多少种 API 函数 ?
参考回答
在 Node.js 中,API 函数主要分为以下几大类,根据其功能模块进行划分,而不是具体的数量:
- 全局对象 API
提供无需require
就能直接使用的函数和变量,例如:console.log()
setTimeout()
__dirname
和__filename
- 模块化 API
Node.js 提供大量内置模块,每个模块包含不同的 API,例如:- 文件系统模块 (
fs
):fs.readFile()
、fs.writeFile()
- HTTP 模块 (
http
):http.createServer()
、req.on()
- 路径模块 (
path
):path.join()
、path.resolve()
- 文件系统模块 (
- 事件驱动 API
EventEmitter
类提供事件相关的 API,例如on()
、emit()
。
- 流式 API
- 可读流和可写流的 API,例如
stream.readable
、stream.write()
。
- 可读流和可写流的 API,例如
- 异步控制 API
- 提供异步操作的回调、Promise 和
async/await
支持的函数,例如fs.promises
。
- 提供异步操作的回调、Promise 和
Node.js 的 API 是模块化的,不直接统计具体数量,而是根据应用场景选择使用。
详细讲解与拓展
1. 全局对象 API
这些 API 是全局可用的,无需显式导入:
– 常见方法:
“`javascript
console.log('Hello, World!'); // 输出到控制台
setTimeout(() => console.log('Timeout'), 1000); // 定时器
“`
– **常见全局变量**:
– `__dirname`: 当前脚本所在的目录。
– `__filename`: 当前脚本的完整路径。
2. 模块化 API
Node.js 的核心 API 按模块划分,以下是一些常见模块及其功能:
– 文件系统模块 (fs
):
– 同步方法:
“`javascript
const fs = require('fs');
const data = fs.readFileSync('file.txt', 'utf8');
console.log(data);
“`
– 异步方法:
“`javascript
fs.readFile(‘file.txt’, ‘utf8’, (err, data) => {
if (err) throw err;
console.log(data);
});
“`
- HTTP 模块 (
http
):- 创建 HTTP 服务:
- 路径模块 (
path
):- 操作路径:
3. 事件驱动 API
Node.js 基于事件驱动,EventEmitter
是核心:
– 自定义事件:
“`javascript
const EventEmitter = require('events');
const emitter = new EventEmitter();
emitter.on('message', (arg) => {
console.log('Message received:', arg);
});
emitter.emit('message', 'Hello!');
“`
4. 流式 API
流是 Node.js 的核心概念,用于处理数据的读写:
– 可读流:
“`javascript
const fs = require('fs');
const readableStream = fs.createReadStream('file.txt');
readableStream.on('data', (chunk) => {
console.log(chunk.toString());
});
“`
- 可写流:
5. 异步控制 API
Node.js 提供强大的异步编程支持:
– 使用回调:
“`javascript
fs.readFile('file.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
“`
- 使用
Promise
: - 使用
async/await
:
6. 其他模块
- 操作系统模块 (
os
):获取系统信息。 - 加密模块 (
crypto
):执行加密操作。
总结
Node.js 提供了大量模块化 API,每个模块包含丰富的功能。这些 API 的数量不断增长,但开发者通常按需引用特定模块。熟练掌握常用模块如 fs
、http
、path
等是高效使用 Node.js 的关键。