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;
- Express 3中的Jade模板块传递variables
- 如何将Keystone.JS添加到现有的Express.js应用程序?
- Module.Exports不适用于Express
- 如何清除req.session.array?
- 在nodejs express模块中处理所有事件之前发送响应
- 咕噜玉 – 如何编译单一的玉文件,而不是一切
- 摩卡,快速testing错误 – “毕竟”钩错误 – 对象函数没有方法“closures”
- 如何处理node.js服务器中对文件的多个请求
- node-express errror:express deprecated res.send(status):use res.sendStatus(status)instead