核心模块(Core Modules)

Node.js 内置的核心模块。


📚 常用核心模块

1. fs - 文件系统

const fs = require('fs');
 
// 异步读取文件
fs.readFile('file.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});
 
// 同步读取文件
const data = fs.readFileSync('file.txt', 'utf8');
 
// Promise 方式(fs/promises)
const fsPromises = require('fs/promises');
const data = await fsPromises.readFile('file.txt', 'utf8');

2. path - 路径处理

const path = require('path');
 
// 路径拼接
path.join('/foo', 'bar', 'baz'); // '/foo/bar/baz'
 
// 路径解析
path.parse('/foo/bar.txt');
// { root: '/', dir: '/foo', base: 'bar.txt', ext: '.txt', name: 'bar' }
 
// 获取扩展名
path.extname('file.txt'); // '.txt'
 
// 获取文件名
path.basename('/foo/bar.txt'); // 'bar.txt'

3. http - HTTP 服务器

const http = require('http');
 
const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello Node.js');
});
 
server.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});

4. url - URL 处理

const url = require('url');
 
const myURL = new URL('https://example.com/path?name=value');
console.log(myURL.pathname); // '/path'
console.log(myURL.searchParams.get('name')); // 'value'

5. querystring - 查询字符串

const querystring = require('querystring');
 
// 解析
querystring.parse('name=value&age=30');
// { name: 'value', age: '30' }
 
// 序列化
querystring.stringify({ name: 'value', age: 30 });
// 'name=value&age=30'

6. events - 事件系统

const EventEmitter = require('events');
 
class MyEmitter extends EventEmitter {}
 
const myEmitter = new MyEmitter();
 
myEmitter.on('event', (data) => {
  console.log('收到事件:', data);
});
 
myEmitter.emit('event', 'Hello');

7. stream - 流处理

const fs = require('fs');
const { Readable } = require('stream');
 
// 读取流
const readStream = fs.createReadStream('input.txt');
const writeStream = fs.createWriteStream('output.txt');
 
readStream.pipe(writeStream);

8. crypto - 加密

const crypto = require('crypto');
 
// 哈希
const hash = crypto.createHash('sha256');
hash.update('data');
console.log(hash.digest('hex'));
 
// 加密
const cipher = crypto.createCipher('aes192', 'password');

9. os - 操作系统

const os = require('os');
 
console.log(os.platform()); // 'darwin', 'win32', 'linux'
console.log(os.arch()); // 'x64'
console.log(os.cpus()); // CPU 信息
console.log(os.totalmem()); // 总内存

10. util - 工具函数

const util = require('util');
 
// 回调转 Promise
const readFile = util.promisify(fs.readFile);
 
// 格式化字符串
util.format('%s:%s', 'foo', 'bar'); // 'foo:bar'
 
// 继承
util.inherits(Child, Parent);

💡 使用建议

1. 优先使用异步方法

// ✅ 推荐:异步
fs.readFile('file.txt', (err, data) => {
  // 处理
});
 
// ⚠️ 谨慎使用:同步(会阻塞)
const data = fs.readFileSync('file.txt');

2. 使用 Promise 版本

// 使用 fs/promises
const fs = require('fs/promises');
const data = await fs.readFile('file.txt', 'utf8');

3. 错误处理

fs.readFile('file.txt', (err, data) => {
  if (err) {
    console.error('读取文件失败:', err);
    return;
  }
  // 处理数据
});

🔗 相关链接


参考


nodejs 核心模块 内置模块 fs http path