我在heroku上部署了我的mern堆栈应用程序,但出现了错误,我不知道是什么原因。 错误日志
2020-04-22T15:25:46.000000+00:00 app[api]: Build succeeded
2020-04-22T15:25:58.707869+00:00 app[web.1]:
2020-04-22T15:25:58.707896+00:00 app[web.1]: > contactkeeper@1.0.0 start /app
2020-04-22T15:25:58.707897+00:00 app[web.1]: > node server.js
2020-04-22T15:25:58.707897+00:00 app[web.1]:
2020-04-22T15:25:59.586133+00:00 app[web.1]: Server started on port 5000..
2020- 04-22T15:25:59.792525+00:00 app[web.1]: Database connected...
2020-04-22T15:26:56.331376+00:00 heroku[web.1]: State changed from starting to crashed
2020-04-22T15:26:56.334688+00:00 heroku[web.1]: State changed from crashed to starting
2020-04-22T15:27:07.526858+00:00 app[web.1]:
2020-04-22T15:27:07.526882+00:00 app[web.1]: > contactkeeper@1.0.0 start /app
2020-04-22T15:27:07.526883+00:00 app[web.1]: > node server.js
2020-04-22T15:27:07.526883+00:00 app[web.1]:
2020-04-22T15:27:08.176741+00:00 app[web.1]: Server started on port 5000..
2020-04-22T15:27:08.300897+00:00 app[web.1]: Database connected...
2020-04-22T15:28:05.725653+00:00 heroku[web.1]: State changed from starting to crashed
2020-04-22T15:28:08.166135+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=quiet-stream-92502.herokuapp.com request_id=e53971ab-65b3-4aa5-bf96-678ab2e6101b fwd="105.112.99.16" dyno= connect= service= status=503 bytes= protocol=https
2020-04-22T15:28:09.099701+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=quiet-stream-92502.herokuapp.com request_id=a0b04322-cb79-472b-8c93-19c55d3e0f1b fwd="105.112.99.16" dyno= connect= service= status=503 bytes= protocol=https
答案 0 :(得分:0)
重复
Found Answer
此外,用于理解
从Heroku的文档中:
通用运行时通过将所有的dyno相互防火墙隔离,从而提供了强大的隔离。唯一可以达到动态性的流量是从路由器转发到侦听$ PORT环境变量中指定的端口号的Web进程的Web请求。工人和一次性测功机无法接收入站请求。
[...]
dynos common-runtime-networking
这意味着您无法设置自定义端口。
您必须使用动态生成的名为“ PORT”的环境变量
答案 1 :(得分:0)
如果仔细查看错误,您会注意到它说在端口5000上运行。得到错误的原因是因为您没有使用Heroku分配给应用程序的端口号。
由于您正在使用快递,因此您的SELECT ARRAY[('{"state": [3, 4, 5]}'::jsonb->'state'->>1)::int]
应该看起来像这样
app.listen
请确保您不要将const PORT = process.env.PORT || 5000;
app.listen(PORT, () => {
console.log("server has started");
});
放在 5000
之前。当您尝试部署到heroku时,这将导致错误。