当前位置:

首页 > 编程开发 > Node.js日志中如何分析API响应时间

Node.js日志中如何分析API响应时间

在Node.js开发中,通过Express中间件监听请求的finish事件,记录开始与结束时间戳,计算并输出每个API接口的响应耗时,便于性能分析与问题排查,帮助快速定位接口瓶颈与优化方向。

在Node.js开发中,API响应时间往往是衡量服务性能的关键指标。如果能直接在日志里看到每个接口的耗时,排查问题、做性能优化会轻松很多。那具体怎么做呢?其实用Express框架的中间件机制就能很简单地实现。

Node.js日志中如何分析API响应时间

先确保已经安装了Express,如果还没装,老规矩:

npm install express

然后创建一个 app.js 文件,引入Express模块:

const express = require('express');
const app = express();

核心思路是写一个自定义中间件,它在每个请求开始时记录时间戳,等请求完成时再计算耗时。注意,这里要监听响应的 finish 事件,而不是在中间件里直接同步计算——因为后面可能还有其他异步操作(比如数据查询、文件读写)。代码看起来像这样:

app.use((req, res, next) => {
  const start = Date.now();
  res.on('finish', () => {
    const duration = Date.now() - start;
    console.log(`${req.method} ${req.originalUrl} - ${duration}ms`);
  });
  next();
});

有了这个中间件后,随便定义几个API路由来测试效果。比如两个接口,分别模拟耗时1秒和2秒:

app.get('/api/test1', (req, res) => {
  setTimeout(() => {
    res.json({ message: 'Test API 1' });
  }, 1000);
});

app.get('/api/test2', (req, res) => {
  setTimeout(() => {
    res.json({ message: 'Test API 2' });
  }, 2000);
});

最后启动服务,监听端口:

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

当你访问 /api/test1 和 /api/test2 时,控制台就会输出类似这样的日志:

GET /api/test1 - 1002ms
GET /api/test2 - 2001ms

是不是很简单?当然,这只是最基础的用法。实际项目中,你可能需要把响应时间记录到日志文件、数据库,或者接入监控系统做进一步分析。比如用 fs 模块写入文件,或者配合 winston 之类的日志库做更细粒度的管理——这些都留给各位按需扩展了。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 Linux
相关文章 更多
linux删除用户与用户组的方法及命令教程
linux删除用户与用户组的方法及命令教程

掌握Linux中删除用户和用户组的正确方法,避免残留文件和进程冲突。本文深入解析userdel和groupdel命令的参数用法,提供处理“用户仍在使用”等常见错误的实战方案。

Linux如何开启端口号?开放端口命令详解
Linux如何开启端口号?开放端口命令详解

详细讲解Linux如何开启端口号以及常用的开放端口命令。

crossover卸载软件下载及重新安装教程
crossover卸载软件下载及重新安装教程

遇到CrossOver运行错误或需要更新版本时,如何彻底卸载旧版并干净重装?本教程详解macOS和Linux下的卸载步骤、残留文件清理方法及官方下载渠道,确保软件环境纯净稳定。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
AirBuddy 3 macOS版
AirBuddy 3 macOS版
macOS

AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

AirServer macOS版
AirServer macOS版
macOS

AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

AnyDesk macOS版
AnyDesk macOS版
macOS

AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

WINDOWS 更多
StarUML 7 Windows版
StarUML 7 Windows版
Windows

StarUML 7 Windows版是一款面向软件工程、系统分析与架构设计的专业建模工具,支持UML 2、ERD、流程图、数据流图和C4模型等,可用于需求梳理、系统设计、模型验证、文档发布及代码生成。

Fender Studio Pro(原Studio One)Windows版
Fender Studio Pro(原Studio One)Windows版
Windows

Fender Studio Pro(原Studio One)Windows版是一套专业数字音频工作站,可完成录音、编曲、混音、母带处理与现场演出。 新版本延续Studio One的核心工作流,并加入Fender音箱与效果建模、智能创作和更现代的制作界面。

think cell Windows版
think cell Windows版
Windows

think-cell Windows版是一款集成于Microsoft PowerPoint和Excel的商业演示增强插件,提供瀑布图、甘特图、Mekko图、数据联动、自动标注及智能排版功能,适合咨询、金融、项目管理和企业汇报场景。