【问题标题】:Deploy App to Heroku - I got Internal Server Error将应用程序部署到 Heroku - 我收到内部服务器错误
【发布时间】:2019-06-18 05:32:44
【问题描述】:

我的第一个应用程序是查看 Mongo / Express / Node 的一个教程。应用程序使用 nodemon server.js 在 localhost 端口:3000 上成功运行。

我直接将 GitHub 与 Heroku 连接,每次都收到“内部服务器错误”消息。

如果有人知道问题所在,我将不胜感激。虽然应用程序可以在计算机上运行,​​但我想学习如何在 Heroku 上部署它。

require("./models/db");

const express = require("express");
const path = require("path");
const exphbs = require("express-handlebars");
const bodyparser = require("body-parser");

const employeeController = require("./controllers/employeeController");

var app = express();
app.use(
  bodyparser.urlencoded({
    extended: true
  })
);
app.use(bodyparser.json());
app.set("views", path.join(__dirname, "/views/"));
app.engine(
  "hbs",
  exphbs({
    extname: "hbs",
    defaultLayout: "mainlayout",
    layoutsDir: __dirname + "/views/layouts/"
  })
);
app.set("view engine", "hbs");

app.listen(process.env.PORT || 3000, function () {
  console.log("Express server listening on port %d in %s mode", this.address().port, app.settings.env)
});

app.use("/employee", employeeController);

【问题讨论】:

    标签: node.js mongodb express heroku


    【解决方案1】:

    从您的帖子中,我只能猜到一些可能是错误的事情。尝试在您的终端中使用heroku logs -t(如果您已在终端上登录heroku cli)并评论您看到的内容。可能是您的 npm start 命令正在使用 nodemon (不应该用于生产)。也可能是你的 package.json 中没有某些东西,因此没有安装在 Heroku 上。如果您发布您在该终端命令上获得的内容,我可能会进一步帮助您:)

    【讨论】:

    • 似乎有两件事出了问题,可能彼此相关。第一个是app.listen似乎存在语法错误“Unexpected token (”。检查以确保您在某处没有额外的括号或没有在某处关闭括号。此外,您在app.listen之后定义了一条路线, app.use("/employee", employeeController) 你通常不应该这样做——先定义所有路由然后调用 app.listen。我看到的另一个错误是 mongo 连接——你可能正在尝试连接到本地数据库(在 Heroku 上不可用)。希望这个有帮助!
    猜你喜欢
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 2022-01-12
    相关资源
    最近更新 更多