🔍 登录 注册

Node.js核心模块概览

大 大苹果 2024-04-16 algorithm 👁 49 ⏱ 3min

Node.js核心模块概览

  1. fs (文件系统)

用于与文件系统交互,例如读取和写入文件。

javascriptconst fs = require('fs');

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

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

用于创建HTTP服务器。

javascriptconst 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(8124, () => {
  console.log('Server is running at http://localhost:8124');
});
  1. path

提供用于处理文件和目录路径的工具。

javascriptconst path = require('path');

// 拼接路径
const filePath = path.join(__dirname, 'example.txt');
console.log(filePath); // 输出:例如:/Users/username/project/example.txt

// 获取文件扩展名
const extname = path.extname(filePath);
console.log(extname); // 输出:.txt
  1. url

用于解析和操作URLs。

javascriptconst url = require('url');

const parsedUrl = url.parse('http://example.com/?name=value');
console.log(parsedUrl.hostname); // 输出:example.com
console.log(parsedUrl.query); // 输出:{ name: 'value' }
  1. events

提供事件发射器功能,允许对象监听和触发事件。

javascriptconst EventEmitter = require('events');

class MyEmitter extends EventEmitter {}

const myEmitter = new MyEmitter();

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

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

提供与操作系统交互的功能。

javascriptconst os = require('os');

console.log(`Total memory: ${os.totalmem()} bytes`);
console.log(`Free memory: ${os.freemem()} bytes`);
console.log(`OS type: ${os.type()}`);
  1. querystring

用于解析和格式化URL查询字符串。

javascriptconst querystring = require('querystring');

// 解析查询字符串
const parsed = querystring.parse('name=value&age=25');
console.log(parsed); // 输出:{ name: 'value', age: '25' }

// 格式化对象为查询字符串
const obj = { name: 'Value', age: 25 };
const formatted = querystring.stringify(obj);
console.log(formatted); // 输出:name=Value&age=25

以上只是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