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

Node API本地运行正常 部署到Vercel提示Serverless Function崩溃如何解决

修复步骤

1. 调整入口文件适配Vercel规范

Vercel无服务器函数不支持直接监听端口启动服务,需要导出express实例供平台调用,修改index.js末尾代码:
把原有代码:

const PORT = 5001;
app.listen(PORT, () => console.log("API is running."))

替换为:

// 仅本地开发环境启动端口监听
if (process.env.NODE_ENV === 'development') {
  const PORT = 5001;
  app.listen(PORT, () => console.log("API is running."))
}

// 导出实例供Vercel调用
module.exports = app

同时建议给Mongoose连接添加超时配置,避免冷启动时连接超时崩溃:

mongoose.connect(dbConfig, {
  serverSelectionTimeoutMS: 5000
})

2. 新增Vercel配置文件

在项目根目录新建vercel.json文件,配置路由转发规则:

{
  "version": 2,
  "builds": [
    {
      "src": "index.js",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "/index.js"
    }
  ]
}

3. 修正package.json启动脚本

Vercel线上部署默认执行npm start,你当前的start命令是本地开发专用的,调整为:

"scripts": {
  "start": "node index.js",
  "dev": "vercel dev",
  "deploy": "vercel deploy --prod"
}

4. 补全线上环境变量

你用到的config包、dotenv依赖的配置,本地的.env文件和config目录下的配置不会默认同步到Vercel,需要手动在Vercel项目控制台的「环境变量」页面添加所有需要的配置项,包括数据库连接地址等敏感参数。如果不想提交config目录到代码仓库,建议把所有配置项都改为直接从process.env读取。

5. 查看运行日志定位问题

如果修改后仍然报错,可以在Vercel控制台的「函数日志」页面查看具体的运行时报错信息,即可精准定位问题根源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:54:01