核心模块(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;
}
// 处理数据
});🔗 相关链接
- 模块系统 — CommonJS 和 ES Modules
- Node.js 官方文档
参考: