- 杨刚的个人网站/
- 文章/
- 前端/
- NodeJS/
- NodeJS API/
NodeJS API
2025
2、Buffer
·1860 字·4 分钟·
loading
·
loading
前端
NodeJS
NodeJS API
Buffer简介 # JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。
8、多进程和多线程
·2449 字·5 分钟·
loading
·
loading
前端
NodeJS
NodeJS API
多进程和多线程的选择 # node.js 目前有两种方案,一种是使用children_process或者cluster开启多进程进行计算,一种是使用worker_thread 开启多线程进行计算
7、http
·2039 字·5 分钟·
loading
·
loading
前端
NodeJS
NodeJS API
Node.js 的 http 模块提供了创建HTTP 服务器和客户端的功能。
HTTP 服务器 # 创建方法 # 使用createServer 创建 # const http = require('http'); // 创建服务对象 const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World\n'); }); // 开启监听 3000 端口 server.listen(3000, '127.0.0.1', () => { console.log('服务器运行在 http://127.0.0.1:3000/'); }); 使用 Server 类创建 # const http = require('http'); const server = new http.Server((req, res) => { // 设置统一响应头 res.writeHead(200, { 'Content-Type': 'text/plain' }); // 设置统一响应体 res.end('Hello World\n'); }); server.listen(3001); 处理不同请求方法 # const http = require('http'); // 2. 使用 Server 类 const server = new http.Server((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World\n'); }); server.listen(3001); // 处理不同请求方法 const server = http.createServer((req, res) => { switch (req.method) { case 'GET': handleGet(req, res); break; case 'POST': handlePost(req, res); break; default: res.writeHead(405); res.end('Method Not Allowed'); } }); // get 方法处理函数 function handleGet(req, res) { res.writeHead(200, { 'Content-Type': 'application/json' }); res.end(JSON.stringify({ message: 'GET request handled' })); } // post 方法处理函数 function handlePost(req, res) { let body = ''; req.on('data', chunk => { body += chunk.toString(); }); req.on('end', () => { try { const data = JSON.parse(body); res.writeHead(200, { 'Content-Type': 'application/json' }); res.end(JSON.stringify({ received: data })); } catch (e) { res.writeHead(400); res.end('Invalid JSON'); } }); } 服务端事件 # // 1. 连接事件 server.on('connection', (socket) => { console.log('新连接建立'); socket.on('data', (chunk) => { console.log('收到数据:', chunk.toString()); }); socket.on('end', () => { console.log('连接结束'); }); socket.on('error', (err) => { console.error('Socket 错误:', err); }); }); // 2. 请求事件 server.on('request', (req, res) => { console.log('收到请求:', req.method, req.url); }); // 3. 错误事件 server.on('error', (err) => { console.error('服务器错误:', err); }); // 4. 关闭事件 server.on('close', () => { console.log('服务器关闭'); }); // 5. 监听事件 server.on('listening', () => { console.log('服务器开始监听'); }); 服务端常用方法 # // 1. 启动服务器 server.listen(3000, '127.0.0.1', () => { console.log('服务器运行在 http://127.0.0.1:3000/'); }); // 2. 关闭服务器 server.close(() => { console.log('服务器已关闭'); }); // 3. 获取服务器地址信息 const address = server.address(); console.log('服务器地址:', address); // { address: '127.0.0.1', family: 'IPv4', port: 3000 } // 4. 设置超时 server.setTimeout(60000); // 60 秒 server.on('timeout', (socket) => { console.log('连接超时'); }); // 5. 获取最大头信息大小 const maxHeaderSize = server.maxHeaderSize; console.log('最大头信息大小:', maxHeaderSize); // 6. 设置最大头信息大小 server.maxHeaderSize = 16384; // 16KB 回调函数 # 请求对象 (http.IncomingMessage) # 即我们在创建 server 时回调函数的第一个参数
6、文件系统
·3212 字·7 分钟·
loading
·
loading
前端
NodeJS
NodeJS API
FS 简介 # Node.js 的文件系统模块(fs 模块)提供了丰富的 API,用于读取、写入、删除文件以及执行其他文件系统操作。
5、util
·602 字·2 分钟·
loading
·
loading
前端
NodeJS
NodeJS API
util 模块是 Node.js 的一个内置模块,包含了实用工具函数,用于支持 JavaScript 编程中的调试、错误处理、格式化等功能。
4、全局对象
·3893 字·8 分钟·
loading
·
loading
前端
NodeJS
NodeJS API
global # JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量。
3、Stream
·1168 字·3 分钟·
loading
·
loading
前端
NodeJS
NodeJS API
简介 # Node.js 的 Stream 是一种处理流式数据的抽象接口,广泛应用于文件操作、网络通信等场景。
1、EventEmitter
·1004 字·3 分钟·
loading
·
loading
前端
NodeJS
NodeJS API
EventEmitter # 在 Node.js 中,事件驱动编程主要通过 EventEmitter 类来实现。