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

先确保已经安装了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 之类的日志库做更细粒度的管理——这些都留给各位按需扩展了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8