Node.js核心模块概览

 后端   大苹果   2024-04-16 11:57   310

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特性,我建议您查阅官方文档和相关的在线资源。