IT评测·应用市场-qidao123.com技术社区

标题: Node.js核心模块及Api详解 [打印本页]

作者: 欢乐狗    时间: 2025-4-7 01:57
标题: Node.js核心模块及Api详解
以下是 Node.js 最常用的核心模块及 API 详解,按利用频率和紧张性分类整理:

一、高频核心模块

1. fs 文件系统

  1. const fs = require('fs');
  2. const fsPromises = require('fs').promises; // Promise 版本
  3. // 异步读取文件(推荐)
  4. fs.readFile('file.txt', 'utf8', (err, data) => {
  5.   if (err) throw err;
  6.   console.log(data);
  7. });
  8. // Promise 方式读取(ES6+)
  9. fsPromises.readFile('file.txt', 'utf8')
  10.   .then(data => console.log(data))
  11.   .catch(console.error);
  12. // 同步读取(慎用)
  13. const data = fs.readFileSync('file.txt', 'utf8');
  14. // 写文件
  15. fs.writeFile('new.txt', 'Hello World', err => {
  16.   if (err) throw err;
  17. });
  18. // 目录操作
  19. fs.readdir('./', (err, files) => {
  20.   console.log(files); // 获取目录文件列表
  21. });
  22. // 文件状态
  23. fs.stat('file.txt', (err, stats) => {
  24.   console.log(stats.isFile()); // 是否文件
  25.   console.log(stats.size); // 文件大小
  26. });
复制代码
2. path 路径处置惩罚

  1. const path = require('path');
  2. // 拼接路径(跨平台)
  3. const fullPath = path.join(__dirname, 'subdir', 'file.txt');
  4. // 解析绝对路径
  5. path.resolve('src', 'app.js'); // 等同于 __dirname + '/src/app.js'
  6. // 获取文件名/扩展名
  7. path.basename('/foo/bar/baz.txt'); // 'baz.txt'
  8. path.extname('index.html'); // '.html'
  9. // 路径解析
  10. path.parse('/home/user/file.txt');
  11. /* 返回:
  12. {
  13.   root: '/',
  14.   dir: '/home/user',
  15.   base: 'file.txt',
  16.   ext: '.txt',
  17.   name: 'file'
  18. } */
复制代码
3. http 网络服务

  1. const http = require('http');
  2. // 创建服务器
  3. const server = http.createServer((req, res) => {
  4.   res.writeHead(200, { 'Content-Type': 'text/plain' });
  5.   res.end('Hello World');
  6. });
  7. server.listen(3000, () => {
  8.   console.log('Server running on port 3000');
  9. });
  10. // 发起 HTTP 请求
  11. http.get('http://api.example.com', (response) => {
  12.   let data = '';
  13.   response.on('data', chunk => data += chunk);
  14.   response.on('end', () => console.log(data));
  15. });
复制代码

二、中高频工具模块

1. events 事件触发器

  1. const EventEmitter = require('events');
  2. class MyEmitter extends EventEmitter {}
  3. const myEmitter = new MyEmitter();
  4. // 监听事件
  5. myEmitter.on('event', (arg) => {
  6.   console.log('Event triggered:', arg);
  7. });
  8. // 触发事件(可传参)
  9. myEmitter.emit('event', { data: 123 });
  10. // 一次性监听
  11. myEmitter.once('single', () => console.log('Only once'));
复制代码
2. stream 流处置惩罚

  1. const fs = require('fs');
  2. // 读取流
  3. const readStream = fs.createReadStream('bigfile.txt', 'utf8');
  4. readStream.on('data', chunk => {
  5.   console.log('Received chunk:', chunk.length);
  6. });
  7. readStream.on('end', () => {
  8.   console.log('File read complete');
  9. });
  10. // 写入流
  11. const writeStream = fs.createWriteStream('output.txt');
  12. writeStream.write('Line 1\n');
  13. writeStream.end('Final line');
复制代码
3. util 实用工具

  1. const util = require('util');
  2. // 回调转 Promise
  3. const readFileAsync = util.promisify(fs.readFile);
  4. // 继承检查
  5. util.types.isDate(new Date()); // true
  6. // 深度对象调试
  7. console.log(util.inspect(obj, { depth: null }));
复制代码

三、常用全局对象

1. process 历程控制

  1. // 环境变量
  2. console.log(process.env.NODE_ENV);
  3. // 命令行参数
  4. process.argv.forEach((val, index) => {
  5.   console.log(`${index}: ${val}`);
  6. });
  7. // 退出程序
  8. process.exit(1); // 非零表示异常退出
  9. // 标准输入输出
  10. process.stdin.on('data', data => {
  11.   process.stdout.write(`You typed: ${data}`);
  12. });
复制代码
2. Buffer 二进制处置惩罚

  1. // 创建 Buffer
  2. const buf1 = Buffer.from('Hello');
  3. const buf2 = Buffer.alloc(10); // 10字节空Buffer
  4. // 写入数据
  5. buf2.write('World');
  6. // 转换格式
  7. console.log(buf1.toString('base64')); // SGVsbG8=
  8. console.log(Buffer.from('SGVsbG8=', 'base64').toString()); // Hello
复制代码

四、其他关键 API

1. 定时器

  1. // setTimeout (单次)
  2. const timer = setTimeout(() => {
  3.   console.log('Delayed 1s');
  4. }, 1000);
  5. // clearTimeout(timer); // 取消
  6. // setInterval (循环)
  7. const interval = setInterval(() => {
  8.   console.log('Every 2s');
  9. }, 2000);
  10. // clearInterval(interval);
复制代码
2. child_process 子历程

  1. const { exec, spawn } = require('child_process');
  2. // 执行 shell 命令
  3. exec('ls -l', (err, stdout, stderr) => {
  4.   console.log(stdout);
  5. });
  6. // 流式处理
  7. const ls = spawn('ls', ['-lh', '/usr']);
  8. ls.stdout.on('data', data => {
  9.   console.log(`stdout: ${data}`);
  10. });
复制代码

五、最佳实践要点


六、常用第三方模块推荐

模块名用途安装命令expressWeb 框架npm install expressaxiosHTTP 客户端npm install axioslodash实用工具库npm install lodashmoment日期处置惩罚npm install momentwinston日记纪录npm install winstondotenv环境变量加载npm install dotenv 把握这些核心 API 后,可快速应对 90% 的 Node.js 开发场景。发起结合官方文档深入理解:https://nodejs.org/api/

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4