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

部署至Vercel后LeetCode用户统计接口返回404错误排查求助

部署至Vercel后LeetCode用户统计接口返回404错误排查求助

兄弟,我帮你梳理下代码里可能导致Vercel部署后出现404的几个关键问题,都是新手部署Express到Vercel容易踩的坑:

  • 端口硬编码问题
    你代码里直接写了app.listen(4000),但Vercel作为云平台,会动态分配可用端口,不是固定的4000。硬编码端口会导致Vercel启动的服务无法被外部访问,直接返回404。
    修改成动态获取端口的写法:

    const PORT = process.env.PORT || 4000;
    app.listen(PORT, () => {
      console.log(`LeetCode Backend is running on port ${PORT}`);
    });
    
  • Vercel路由重写配置缺失
    Vercel默认的路由规则不会自动把所有请求转发到你的Express服务,尤其是像/:id这种动态路由。你需要在项目根目录新建一个vercel.json文件,添加路由重写规则:

    {
      "rewrites": [
        { "source": "/(.*)", "destination": "/server.js" }
      ]
    }
    

    这里的server.js要替换成你实际的Express入口文件名,这样所有请求都会被转发到你的Express服务处理,避免路由不匹配导致404。

  • 额外排查:LeetCode反爬拦截(可能间接引发问题)
    虽然本地能正常请求,但Vercel服务器的IP可能被LeetCode的反爬机制识别为非浏览器请求。你可以在请求头里加上常见的User-Agent试试:

    headers: {
      'Content-Type': 'application/json',
      'Referer': 'https://leetcode.com',
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
    },
    

    这个不一定是404的直接原因,但如果请求被拦截,也可能导致服务返回异常,顺带排查下。

先优先解决前两个问题,这是Vercel部署Express应用时最常见的404诱因,改完重新部署应该就能正常访问了。

备注:内容来源于stack exchange,提问作者Sriya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 17:58:14