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

如何在Node.js/(unjs) h3/Nuxt 3中记录响应字节大小?

Nuxt 3 组合日志格式日志记录:获取响应字节大小问题

补充说明:我知道有Content-Length响应头,但在当前中间件运行时,响应头尚未设置。

我正尝试让我的Nuxt 3应用使用组合日志格式进行规范日志记录,其中一个字段是响应的字节大小。以下是我使用的中间件,但此时获取该值为时过早,且event.res对象中也找不到类似字节大小的属性。

import { CompatibilityEvent } from "h3";
import { DateTime } from 'luxon';

export default defineEventHandler((event: CompatibilityEvent) => {
    const ip = event.req.headers['x-forwarded-for'];
    const date = DateTime.now().setLocale('en-US').toFormat('[dd/LLL/yyyy:TT ZZZ]');
    const method = event.req.method || '-';
    const path = event.req.url || '-';
    const httpVersion = event.req.httpVersion;
    const statusCode = event.res.statusCode || '-';
    const referer = event.req.headers['referer'];
    const agent = event.req.headers["user-agent"];

    console.log(`${ip} - - ${date} "${method} ${path} HTTP/${httpVersion}" ${statusCode} - "${referer}" "${agent}"`);
})

该中间件生成的日志如下所示:

192.168.1.11 - - [17/Aug/2022:22:21:33 +0200] "GET /cv HTTP/1.1" 200 - "http://192.168.1.11:3000/cv" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"

日志格式是正确的,但状态码后的短横线应该替换为响应字节大小的具体数值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 00:36:29