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

如何正确在Vercel部署MERN应用?服务器启动失败求助

解决Vercel部署MERN应用后端无法启动的问题

1. 修复路径大小写错误

你的vercel.json里写的/Backend/server.js是大写开头,但实际目录是小写的backend,Vercel对文件路径大小写敏感,这会导致无法找到后端入口文件,先修正这个路径。

2. 调整Vercel配置适配MERN结构

仅靠重写规则不足以让Vercel正确识别后端服务,需要补充构建命令、输出目录以及Serverless函数配置,以下是正确的vercel.json配置:

{
  "buildCommand": "cd client && npm install && npm run build",
  "outputDirectory": "client/build",
  "functions": {
    "backend/server.js": {
      "runtime": "@vercel/node@20"
    }
  },
  "rewrites": [
    {
      "source": "/api/(.*)",
      "destination": "/backend/server.js/api/$1"
    }
  ]
}

3. 后端代码的关键检查项

  • 端口不要硬编码,改用Vercel提供的环境变量:
    const PORT = process.env.PORT || 5000;
    app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
    
  • 确保API路由前缀是/api,比如:
    const notesRoutes = require('./routes/notes');
    app.use('/api', notesRoutes);
    
  • 敏感信息(如MongoDB URI)要在Vercel项目的「Settings > Environment Variables」里配置,代码里用process.env.MONGO_URI调用。

4. 部署验证

部署时Vercel会先执行构建命令打包React客户端,同时将backend/server.js作为Serverless函数部署,所有/api开头的请求会转发到后端处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:03:16