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

部署Node.js Express到Vercel时连接Sequelize数据库崩溃求助

排查Vercel上Express+Sequelize部署崩溃问题

以下是针对你遇到的"This Serverless Function has crashed"错误的具体排查步骤:

1. 核对Vercel环境变量配置

  • 确认Vercel项目的环境变量中已正确添加DATABASE_NAME、MYSQL_USER、MYSQL_PASSWORD、DATABASE_HOST这几个变量,注意变量名大小写完全匹配代码中的定义
  • 环境变量添加后,需手动触发重新部署(在Vercel控制台点击"Deploy"按钮),确保新的环境变量生效

2. 调整SSL连接配置

多数云MySQL服务商(如AWS RDS、PlanetScale)的生产环境SSL配置需要特殊处理:

  • 若数据库服务商允许跳过证书验证(测试阶段可临时尝试),修改dialectOptions:
    dialectOptions: {
      ssl: {
        rejectUnauthorized: false,
      },
    }
    
  • 若服务商提供CA证书,需将证书内容存入Vercel环境变量(如CA_CERT),并配置:
    dialectOptions: {
      ssl: {
        rejectUnauthorized: true,
        ca: process.env.CA_CERT
      },
    }
    

3. 检查数据库网络权限

  • 确认你的MySQL数据库允许Vercel的动态IP访问:测试阶段可临时设置数据库为允许所有IP访问(注意安全风险),若问题解决,说明是IP白名单限制
  • 核对数据库主机地址是否为公网可访问地址,端口(默认3306)是否开放

4. 添加错误捕获查看具体日志

在Sequelize连接代码中加入连接测试和错误捕获,以便在Vercel日志中查看具体错误:

const {Sequelize, DataTypes} = require("sequelize");
const sequelize = new Sequelize(
  process.env.DATABASE_NAME, 
  process.env.MYSQL_USER, 
  process.env.MYSQL_PASSWORD,
  {
    host: process.env.DATABASE_HOST,
    dialect: 'mysql',
    dialectOptions: {
      ssl: {
        rejectUnauthorized: true,
      },
    },
    define: {
      timestamps: false
    }
});

// 测试连接并输出错误详情
sequelize.authenticate()
  .then(() => console.log('数据库连接成功'))
  .catch(err => console.error('数据库连接失败详情:', err));

之后在Vercel控制台的Functions选项卡中,查看对应函数的执行日志,日志会显示具体的崩溃原因(如认证失败、连接超时、证书错误等)

5. 确认Vercel部署配置

  • 检查vercel.json是否正确配置了Express应用的入口,例如:
    {
      "functions": {
        "index.js": {
          "runtime": "@vercel/node@20"
        }
      },
      "routes": [
        { "src": "/(.*)", "dest": "/index.js" }
      ]
    }
    
  • 注意Vercel Serverless函数是按需启动的,避免保持长连接,Sequelize默认的连接池配置可满足需求,若遇到连接耗尽问题,可调整pool参数:
    {
      // ...其他配置
      pool: {
        max: 5,
        min: 0,
        idle: 10000
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 18:23:07