首页 > 解决方案 > 无法弄清楚为什么应用程序没有部署到heroku

问题描述

将我的 nodejs 应用程序部署到 Heroku 时出现“内部服务器错误”。

该应用程序在本地完美运行。

日志文件显示

2020-04-12T20:26:19.601451+00:00 heroku[router]: at=info method=GET path="/" host=hurley-order-application.herokuapp.com request_id=22f65
505-f13d-4bd6-92d3-acffc4d8192a fwd="86.40.232.94" dyno=web.1 connect=1ms service=17ms status=500 bytes=427 protocol=https

2020-04-12T20:26:19.602462+00:00 app[web.1]: ::ffff:10.14.25.48 - - [12/Apr/2020:20:26:19 +0000] "GET / HTTP/1.1" 500 148 "-" "Mozilla/5.
0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"

2020-04-12T20:39:02.946265+00:00 app[web.1]: Error: Failed to lookup view "404" in views directory "/app/views"

2020-04-12T20:39:02.946266+00:00 app[web.1]: at Function.render (/app/node_modules/express/lib/application.js:580:17)

2020-04-12T20:39:02.946267+00:00 app[web.1]: at ServerResponse.render (/app/node_modules/express/lib/response.js:1012:7)

2020-04-12T20:39:02.946268+00:00 app[web.1]: at /app/server.js:68:9

这显然不是本地问题,我需要在这里更改一些东西吗?

Heroku 的错误并没有提供太多信息,但是:

-----> Creating runtime environment

       NPM_CONFIG_LOGLEVEL=error
       NODE_ENV=production
       NODE_MODULES_CACHE=true
       NODE_VERBOSE=false

.....

-----> Build succeeded!

我在 server.js 中有如下路由

app.use(express.static(__dirname + '/views'));
//app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');

//HOME
// Define routes.
app.get('/',
  function(req, res) {
    res.render('404');
  //  res.render('404', { user: req.user });
  });

路由是:

包.json

{
  "name": "lukepackage",
  "engines": {
    "node": ">=12.0.0"
  },
  "repository": {
    "type": "git",
    "url": "https://git.heroku.com/hurley-order-application.git"
  },
  "version": "1.0.0",
  "main": "server.js",
  "dependencies": {
    "body-parser": "^1.19.0",
    "compression": "^1.7.4",
    "connect-ensure-login": "^0.1.1",
    "ejs": "^3.0.1",
    "express": "^4.17.1",
    "express-handlebars": "^3.1.0",
    "express-session": "^1.17.0",
    "mongodb": "^3.5.5",
    "mongoose": "^5.9.6",
    "morgan": "^1.9.1",
    "passport": "^0.4.1",
    "passport-local": "^1.0.0"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node server.js"
  },
  "author": "",
  "license": "ISC",
  "description": "Hurley Order Application"
}

标签: javascriptjavanode.jsmongodbheroku

解决方案


推荐阅读