javascript - 无法弄清楚为什么应用程序没有部署到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"
}
解决方案
推荐阅读
- c# - 如何在 Xamarin.Forms 的 TabbedPage 布局中为不同页面设置不同的标题视图?
- angular - Angular 6 - 如何使用角度输入装饰器在 html 输入中设置动态类型
- python - 汇总数据集并创建新变量
- excel - 通过 VB.net 在 Excel 工作表上应用自动过滤器
- python - 如何使用 Python Selenium webdriver 获取 li 内跨度的值?
- date - 在 Julia 中将包含缺失值的 DataFrame String 列转换为 Date
- javascript - Typescript 到 Javascript 导出
- linux - 当传输长度超过 1345 时,Linux scsi ata cmd 写入或读取有时有效,有时无效
- git - 创建 git init --bare 时如何设置源目录的存储目录?
- json - Scrapy:Rest API 返回的 Json 对象的以下链接