You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js Morgan中间件响应时间Token与Postman显示不一致问题咨询

解决Morgan中间件响应时间与Postman显示差异的问题

Morgan的response-time token默认返回的是秒为单位的数值,你看到的0.1秒正好对应Postman显示的100毫秒,两者本质是同一个时长,只是单位不同而已。

要让日志里的响应时间和Postman显示的单位一致(毫秒),只需要把获取到的数值乘以1000即可:

const morganMiddleware = morgan(
    (tokens, req, res) => JSON.stringify({
        method: tokens.method(req, res),
        url: tokens.url(req, res),
        status: Number.parseFloat(tokens.status(req, res)),
        content_length: tokens.res(req, res, 'content-length'),
        // 乘以1000将秒转换为毫秒
        response_time: Number.parseFloat(tokens['response-time'](req, res)) * 1000,
    }),
    {
        stream: {
            write: (message) => {
                const data = JSON.parse(message);
                logger.http('incoming-request', data);
            },
        },
    },
);

补充说明

  • Morgan的response-time token内部计算的是从请求接收到响应发送完成的时长,默认以秒为单位返回浮点数
  • Postman默认以毫秒为单位展示响应时间,因此两者数值存在1000倍的换算关系

内容的提问来源于stack exchange,提问作者Atharva Deshpande

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:32:33