Heroku给我一个503当试图打开我的web应用程序,在本地主机上工作

我想部署到heroku,但得到一个503,即使它在本地主机上运行。 我很好奇,如果我的服务器设置正确,因为我是更新的编程。 我希望任何人都可以指出我在哪里寻找正确的方向,或提供一个build议,因为我已经花了无数小时在谷歌这个时间跨度几个星期。

我的主要问题是,如果我已经正确地设置我的服务器? 我不确定我的监听程序是否会为heroku工作,而我的.get文件最初是在本地主机上进行debugging时使用的。

我的整个项目也可以在这里find:

https://github.com/dirkdir/DerekDevSite

var express = require('express'); var app = express(); var path = require('path'); app.use(express.static(path.join(__dirname, 'public'))); app.get('/json', function(req, res) { console.log("GET the json"); res .status(200) .json( {"jsonData" : true} ); }); app.get('/file', function(req, res) { console.log("GET the file"); res .status(200) .sendFile(path.join(__dirname, 'app.js')); }); var server = app.listen(process.env.PORT || 5000), function() { var port = server.address().port; console.log("Express is working on port " + port); }); 

日志:

2017-04-24T20:04:43.755866 + 00:00 app [web.1]:at Module._compile(module.js:542:28)2017-04-24T20:04:43.755867 + 00:00 app [web。 1]:在Object.Module._extensions..js(module.js:579:10)2017-04-24T20:04:43.755868 + 00:00 app [web.1]:在Module.load(module.js: 48:32)2017-04-24T20:04:43.755868 + 00:00 app [web.1]:在tryModuleLoad(module.js:446:12)2017-04-24T20:04:43.755869 + 00:00 app [ (module.js:438:3)2017-04-24T20:04:43.755869 + 00:00 app [web.1]:在Module.runMain(module.js:604 :10)2017-04-24T20:04:43.755870 + 00:00 app [web.1]:在运行(bootstrap_node.js:393:7)2017-04-24T20:04:43.755871 + 00:00 app [web .1]:在启动时(bootstrap_node.js:150:9)2017-04-24T20:04:43.846556 + 00:00 heroku [web.1]:状态从开始变为崩溃2017-04-24T20:26:31.826133 +00:00 heroku [router]:at = error code = H10 desc =“App crashed”method = GET path =“/”host = derekdyerdev.herokuapp.com request_id = 609ef253-0a56-41ac-b877-1fb242f6f4e1 fwd =“ 69.36.89.218“dyno = connect = service = status = 503 byt es = protocol = https 2017-04-24T20:26:32.319732 + 00:00 heroku [router]:at = error code = H10 desc =“App crashed”method = GET path =“/ favicon.ico”host = derekdyerdev。 herokuapp.com request_id = f2a34e62-9765-

你的app.js文件的第34行的括号错误。 由于该函数是callback函数,因此需要在参数范围内。

将最后一个块更改为:

 var server = app.listen(process.env.PORT || 5000, function () { var port = server.address().port; console.log("Express is working on port " + port); }); 

我也修改了这个Procfile

 web: node app.js 

我修改后,我能够在本地运行,我把它部署到我的Heroku只是为了testing,它工作正常:)

我有一个类似的问题。 在本地主机上工作..不是当部署到Heroku。 我的问题? 我克隆了一个项目(node_modules太),我的package.json没有明确的,最小化等等,所以它显然失败了。

提示:部署时,请立即查看日志,以便了解整个部署过程中发生的情况。 查看失败后的日志只会显示日志的结尾…

最后,确保你听正确的端口。 我这样做(就像其他人一样)

 var serverPort = 8080; . . . var port = process.env.PORT || serverPort;