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

Heroku部署Parse Server遇H10崩溃错误,疑与MongoDB配置相关

Parse Server在Heroku部署后H10崩溃问题解决

问题概述

目前仍可在Heroku上使用Parse Server吗?相关教程多为2-7年前的内容。将parse-server-example的代码fork后部署到Heroku,访问应用URL时出现H10崩溃错误:

heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=parse-server-example-heroku-5799b138a415.herokuapp.com request_id=6887bbaa-b870-4fb1-81a4-d23aebeff877 fwd="79.117.228.140" dyno= connect= service= status=503 bytes= protocol=https

查阅相关解决方案无效,且仓库中未找到Procfile。原教程推荐的mLab MongoDB已停用,尝试了ObjectRocket for MongoDB,但可能因配置问题未解决错误,当前配置如下:

export const config = {
  databaseURI:
    process.env.DATABASE_URI || process.env.MONGODB_URI || 'mongodb://localhost:27017/dev',
  cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
  appId: process.env.APP_ID || 'myAppId',
  masterKey: process.env.MASTER_KEY || 'myMasterKey', //Add your master key here. Keep it secret!
  serverURL: process.env.SERVER_URL || 'https://parse-server-example-heroku-5799b138a415.herokuapp.com/', // Don't forget to change to https if needed
  liveQuery: {
    classNames: ['Posts', 'Comments'], // List of classes to support for query subscriptions
  },
};

解决方案

1. 确认Parse Server在Heroku的可用性

可以,Heroku目前完全支持Parse Server,旧教程失效主要是因为依赖服务(如mLab停用)和Heroku环境配置更新导致,只要调整适配当前环境即可正常运行。

2. 解决H10崩溃的关键步骤

  • 添加Procfile:Heroku需要Procfile指定应用启动命令。在项目根目录创建无后缀的Procfile文件,内容为:

    web: npm start
    

    这是因为parse-server-example的package.json中start命令已配置为启动Parse Server的脚本。

  • 修正MongoDB配置:

    • 在Heroku应用的「设置」-「配置变量」中,添加MONGODB_URI或DATABASE_URI,值为ObjectRocket提供的完整连接字符串(需包含用户名、密码、主机地址、端口、数据库名称,格式示例:mongodb://<用户名>:<密码>@host:端口/数据库名?authSource=admin)
    • 本地先测试连接:将本地环境变量设置为ObjectRocket的URI,运行项目确认能正常连接MongoDB,排除数据库连接失败导致的崩溃。
  • 查看崩溃具体原因:
    执行命令查看Heroku实时日志,定位崩溃根源:

    heroku logs --tail
    

    常见原因包括:数据库连接超时、环境变量缺失、Node.js版本不兼容、依赖安装失败等。

  • 配置必要环境变量:
    在Heroku配置变量中添加以下必填项,不要依赖代码中的默认值:

    • APP_ID:自定义的应用ID
    • MASTER_KEY:自定义的主密钥(需保密)
    • SERVER_URL:Heroku应用的完整HTTPS地址
  • 检查依赖与Node.js版本兼容性:

    • 确认package.json中parse-server的版本支持Heroku当前默认的Node.js版本(可在Heroku配置变量中设置NODE_VERSION指定兼容版本)
    • 若部署时依赖安装异常,可删除本地的package-lock.json后重新推送代码,让Heroku重新安装适配的依赖版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:27:30