我正在尝试部署到heroku,但即使它在本地主机上运行,也会得到503。我很好奇我的服务器是否设置正确,因为我是编程新手。我希望任何人都可以为我指出正确的方向,即在哪里查找或提供建议,因为我在谷歌上花费了无数个小时,跨越了几周的时间。
我的主要问题是我的服务器设置是否正确?我不确定我的侦听器是否适用于 heroku,并且我的 .get 在最初设置时用于在本地主机上进行调试。
我的完整项目也可以在这里找到:
https://github.com/dirkdir/DerekDevSite 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);
});
Logs:
2017-04-24T20:04:43.755866 + 00:00应用程序[web.1]:在Module._compile(module.js:542:28)
2017-04-24T20:04:43.755867 + 00:00应用程序[web.1]:在Object.Module._extensions..js(module.js:579:10)
2017-04-24T20:04:43.755868 + 00:00应用程序[web.1]:在Module.load(module.js:487:32)
2017-04-24T20:04:43.755868 + 00:00应用程序[web.1]:在tryModuleLoad(module.js:446:12)
2017-04-24T20:04:43.755869 + 00:00应用程序[web.1]:在Function.Module._load(module.js:438:3)
2017-04-24T20:04:43.755869 + 00:00应用程序[web.1]:在Module.runMain(module.js:604:10)
2017-04-24T20:04:43.755870 + 00:00应用程序[web.1]:运行时(bootstrap_node.js:393:7)
2017-04-24T20:04:43.755871 + 00:00应用程序[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 [路由器]:at =错误代码= H10 desc =“应用程序崩溃”方法= GET路径=“/”主机=derekdyerdev.herokuapp.com request_id = 609ef253-0a56 -41ac-b877-1fb242f6f4e1 fwd =“69.36.89.218”dyno =连接=服务=状态= 503字节=协议= https
2017-04-24T20:26:32.319732 + 00:00 heroku [路由器]:at =错误代码= H10 desc =“应用程序崩溃”方法= GET路径=“/favicon.ico”主机= derekdyerdev.herokuapp.com request_id = f2a34e62-9765-
你有支架在线34
你的app.js
文件放在错误的位置。
由于该函数是回调,因此它需要位于参数内。
将最后一个块更改为:
const server = app.listen(process.env.PORT || 5000, () => {
const port = server.address().port;
console.log(`Express is working on port ${port}`);
});
我还修改了Procfile
就这样:
web: node app.js
修改后,我可以在本地运行,并将其部署到我的 Heroku 只是为了测试,它工作正常:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)