阅读量:145
如果您使用的是Node.js的内置HTTP模块,可以在请求处理函数中记录请求开始和结束的时间戳。例如:
const http = require('http');
const server = http.createServer((req, res) => {
const start = Date.now();
req.on('end', () => {
const duration = Date.now() - start;
console.log(`Request handled in ${duration} ms`);
});
// Your request handling logic here
});
server.listen(3000);
使用Express框架:
如果您使用的是Express框架,可以使用中间件来记录请求处理时间。例如,您可以使用morgan和microtime库来实现这一功能:
首先,安装所需的库:
npm install morgan microtime
然后,在您的Express应用程序中使用这些库:
const express = require('express');
const morgan = require('morgan');
const microtime = require('microtime');
const app = express();
app.use(morgan((token, req, res) => {
if (token === 'response-time') {
const duration = parseFloat(req.get('X-Response-Time'));
return `${duration.toFixed(2)} ms`;
}
return token;
}));
app.use((req, res, next) => {
res.on('finish', () => {
const start = parseFloat(req.get('X-Request-Start-Time'));
const duration = (Date.now() - start).toFixed(2);
res.set('X-Response-Time', duration);
res.set('X-Request-Start-Time', start);
});
next();
});
// Your route definitions here
app.listen(3000);
使用第三方库:
还有一些第三方库可以帮助您记录请求处理时间,例如express-prometheus-middleware。这些库通常提供了更多的功能和配置选项。
无论您选择哪种方法,都可以通过在日志中记录请求处理时间来监控和分析应用程序的性能。