在 heroku 上部署 MERN 会导致意外错误

Posted

技术标签:

【中文标题】在 heroku 上部署 MERN 会导致意外错误【英文标题】:Deploy MERN on heroku cause unexpectable errors 【发布时间】:2018-10-23 15:40:19 【问题描述】:

我有一个 MERN 堆栈项目 - 它基于 NodeJS(Express)、ReactJS 并使用 mLab 进行数据库、webpack 进行资源维护。

一开始我只是使用ReactJS,后来我为api添加了后端。

当我只使用 ReactJS 时,在 heroku 上部署非常成功。但是当我将 NodeJS & ReactJS & Webpack & mLab 混合在一起时,在 heroku 上部署有时会成功,但大多数时候会失败。

所以我需要部署几次。

我怎么了?

【问题讨论】:

【参考方案1】:

首先,您是否在外部 package.json 中设置了脚本?我的看起来像这样

  "engines": 
    "node": "9.9.0",
    "yarn": "1.5.1"
 ,
 "dependencies": 
    "bcrypt": "^2.0.1",
    "body-parser": "^1.18.2",
    "cors": "^2.8.4",
    "dotenv": "^5.0.1",
    "express": "^4.16.3",
    "express-jwt": "^5.3.1",
    "helmet": "^3.12.0",
    "jsonwebtoken": "^8.2.1",
    "mongodb": "^3.0.7",
    "mongoose": "^5.0.17",
    "passport": "^0.4.0",
    "passport-facebook": "^2.1.1",
    "passport-google-oauth": "^1.0.0",
    "passport-local": "^1.0.0"
  ,
   "scripts": 
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node backend-card-game/server.js",
        "heroku-postbuild": "cd card-game && yarn install && yarn build"
    ,
...

其次,您的后端是否指向正确的数据库 url?在终端类型中

heroku config:get MONGODB_URI

确保您的后端指向该 url,否则如果这些都没有帮助,那么我需要查看错误消息。

【讨论】:

以上是关于在 heroku 上部署 MERN 会导致意外错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在将 MERN 部署到 Heroku 期间错误地收到文件丢失错误?

部署到 heroku - 白屏 - 没有明显错误 - MERN 堆栈在本地工作得很好,包括 API 请求 - 已经尝试了 27 次部署

尝试将带有顺风的 MERN 堆栈部署到 Heroku 时构建失败

MERN 应用程序在部署到 Heroku 时无法运行“heroku-postbuild”脚本

导致资产预编译在heroku部署上失败的代码片段

部署到 heroku 更改 DEBUG = False 导致 500 错误