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

Nuxt 3开发模式下Node19+中proxyRequest失效问题求助

Nuxt 3兜底服务器中间件Node 19+开发模式异常问题

问题现象

  • Node 18环境下,server/api/[...].ts 中间件可正常运行:

server/api/[...].ts

import { joinURL } from 'ufo';
export default defineEventHandler((event) => {
    const config = useRuntimeConfig();
    const path = event.path.replace(/^\/api\//, '');
    const target = joinURL(config.backendUrl, path);
    console.log('Proxy -->', target);
    return proxyRequest(event, target);
});
  • Node 19.0.0及以上版本:console.log 能正常执行,但Web应用无法加载;将 proxyRequest(event, target); 替换为 return event; 可临时解决加载问题
  • 仅开发模式出现该异常,生产构建运行完全正常

排查进展

使用该中间件搭建的最小复现项目在Node19+环境下运行正常,说明问题出在当前应用自身配置中。以下是我的Nuxt配置代码:

import svgLoader from 'vite-svg-loader';
import type { ConsentType } from './composables/useConsentControl';
import { ENV } from './constants/environments';

const autoImportDirs = ['constants', 'stores'];

export default defineNuxtConfig({
    telemetry: false,
    experimental: {
        // https://github.com/nuxt/nuxt/pull/23725
        defaults: {
            useAsyncData: {
                deep: false,
            },
        },
    },
    components: [
        {
            path: '~/components',
            pathPrefix: false,
        },
    ],
    nitro: {
        imports: {
            dirs: autoImportDirs,
        },
        compressPublicAssets: {
            gzip: true,
            brotli: true,
        },
    },
    imports: {
        dirs: autoImportDirs,
    },
    vite: {
        plugins: [
            svgLoader({
                defaultImport: 'url',
            }),
        ],
    },
    css: ['@/assets/styles/main.scss'],
    devtools: { enabled: process.env.NUXT_PUBLIC_ENVIRONMENT !== ENV.PRODUCTION },
    modules: ['@vueuse/nuxt', '@pinia/nuxt', 'nuxt-jsonld', '@nuxt/image', '@zadigetvoltaire/nuxt-gtm', '@dargmuesli/nuxt-cookie-control'],
    pinia: {
        storesDirs: ['./stores/**', './ranking/**'],
    },
    image: {
        domains: ['https://static.ecommercedb.com'],
    },
    runtimeConfig: {
       baseUrl: process.env.NUXT_BASE_URL,
       // and many other env vars
    },
    public: {
       // many env vars
    },
},
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 03:22:47