【发布时间】:2021-09-26 06:26:14
【问题描述】:
我无法弄清楚 heroku 的问题是什么,我花了 2 天时间试图弄清楚这个错误意味着什么,但无济于事。
2021-07-18T04:27:08.741998+00:00 app[web.1]: {"level":30,"time":1626582428741,"pid":44,"hostname":"98a3475f-ac16 -4dfa-91e0-46d53d3b5e4c","msg":"服务器监听http://127.0.0.1:34196"}
如您所见,服务器正在运行,但是当我尝试从网络访问我的应用程序时。发生这种情况..
2021-07-18T04:27:56.941807+00:00 heroku[web.1]: 错误 R10(启动超时)-> Web 进程在启动后 60 秒内无法绑定到 $PORT
我不知道问题是什么。我的应用显然在 Heroku 指定的预期端口上运行。
package.json
"scripts": {
"test": "npm run build:ts && tsc -p test/tsconfig.test.json && cross-env TS_NODE_FILES=true tap --ts test/**/*.test.ts",
"start": "npm run build:ts && fastify start -l info dist/app.js",
"build:ts": "tsc",
"dev": "tsc && concurrently -k -p \"[{name}]\" -n \"TypeScript,App\" -c \"yellow.bold,cyan.bold\" \"tsc -w\" \"fastify start --ignore-watch=.ts$ -w -l info -P dist/app.js\"",
"database": "npx prisma migrate dev && npx prisma db seed --preview-feature" },
这是来自heroku logs --tail的日志
2021-07-19T04:34:45.411610+00:00 heroku[web.1]: Stopping process with SIGKILL
2021-07-19T04:34:45.535520+00:00 heroku[web.1]: Process exited with status 137
2021-07-19T04:34:45.641077+00:00 heroku[web.1]: State changed from starting to crashed
2021-07-19T04:34:45.648836+00:00 heroku[web.1]: State changed from crashed to starting
2021-07-19T04:34:59.197914+00:00 heroku[web.1]: Starting process with command `npm start`
2021-07-19T04:35:02.499184+00:00 app[web.1]:
2021-07-19T04:35:02.499211+00:00 app[web.1]: > app@1.0.0 start /app
2021-07-19T04:35:02.499211+00:00 app[web.1]: > fastify start -l info dist/app.js
2021-07-19T04:35:02.499212+00:00 app[web.1]:
2021-07-19T04:35:03.830676+00:00 app[web.1]: {"level":40,"time":1626669303829,"pid":21,"hostname":"5b062824-4105-40ff-87b7-5846163fdac5","msg":"Allowing all origins"}
2021-07-19T04:35:03.856136+00:00 app[web.1]: {"level":40,"time":1626669303855,"pid":21,"hostname":"5b062824-4105-40ff-87b7-5846163fdac5","msg":"\"root\" path \"/app/assets\" must exist"}
2021-07-19T04:35:05.924577+00:00 app[web.1]: {"level":30,"time":1626669305924,"pid":21,"hostname":"5b062824-4105-40ff-87b7-5846163fdac5","msg":"Server listening at http://127.0.0.1:42948"}
2021-07-19T04:35:59.304046+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2021-07-19T04:35:59.382557+00:00 heroku[web.1]: Stopping process with SIGKILL
2021-07-19T04:35:59.486461+00:00 heroku[web.1]: Process exited with status 137
2021-07-19T04:35:59.559137+00:00 heroku[web.1]: State changed from starting to crashed
请注意,应用程序运行得很好,但过了一段时间,应用程序启动后 heroku[web.1] 指示 heroku 停止工作,即 app[web.1]
【问题讨论】:
-
可能你在调用listen函数之前运行了一些东西,耗时太长(>60s)
-
可能是这样,但我认为在我的所有代码运行之后,fastify 有他们的监听功能。因此,如果它挂在某个地方,我的应用程序不会打印出“msg”:“服务器正在侦听127.0.0.1:34196”}
-
您可以看到消息,但是在您的应用程序启动后多长时间,您会构建任何东西吗?如果答案是肯定的,请我在
package.json中构建构建脚本 -
我的应用程序几乎立即在我的本地机器上启动,构建脚本基本上是在我的应用程序的主要功能上调用节点,因为你不能真正在 javascript 中构建和编译应用程序,不像 go或者 rust.. 或者任何其他语言 @.@ 我已经更新了我的帖子,所以你可以看到我的 package.json 中的脚本中的内容
标签: node.js typescript heroku fastify