NestJS Heroku Deploy H10

xqkwcwgp  于 2023-04-21  发布在  其他
关注(0)|答案(3)|浏览(99)

我将NestJS应用程序部署到Heroku并获得H10 Error
日志:

2020-05-07T13:12:51.967622+00:00 heroku[web.1]: State changed from starting to crashed

2020-05-07T13:15:14.556288+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=scalenode.herokuapp.com request_id=535e5643-26ad-4fbe-acf3-7f805c8c463c fwd="91.64.79.140" dyno= connect= service= status=503 bytes= protocol=https

这是惊人的,因为错误是因为GET请求。节点已经编译成功。我通过HerokuCli和Github部署。两者都有相同的结果。但是如果我用HerokuCli在本地用heroku local web测试,它可以工作。
这似乎不是一个部署错误本身,它似乎是路由/无法解决,所以应用程序崩溃.当我打开应用程序在浏览器成功部署后,它似乎是一个超时.
Here is the Repo。我在/路由上有一个'Hello World'字符串。我找不到错误的地方。
我为示例使用了Procfile,这似乎很好:

web: node dist/main.js

编辑:
我尝试了静态HTML响应,并尝试了稳定的Node版本12.x。
我不明白

2020-05-07T14:22:40.862206+00:00 app[web.1]: [32m[Nest] 4   - [39m05/07/2020, 2:22:40 PM   [38;5;3m[RoutesResolver] [39m[32mAppController {}:[39m[38;5;3m +6ms[39m

2020-05-07T14:22:40.865503+00:00 app[web.1]: [32m[Nest] 4   - [39m05/07/2020, 2:22:40 PM   [38;5;3m[RouterExplorer] [39m[32mMapped {, GET} route[39m[38;5;3m +3ms[39m

2020-05-07T14:22:40.865886+00:00 app[web.1]: [32m[Nest] 4   - [39m05/07/2020, 2:22:40 PM   [38;5;3m[RoutesResolver] [39m[32mAuthController {}:[39m[38;5;3m +0ms[39m

2020-05-07T14:22:40.867140+00:00 app[web.1]: [32m[Nest] 4   - [39m05/07/2020, 2:22:40 PM   [38;5;3m[RouterExplorer] [39m[32mMapped {/auth/login, POST} route[39m[38;5;3m +2ms[39m

2020-05-07T14:22:40.867778+00:00 app[web.1]: [32m[Nest] 4   - [39m05/07/2020, 2:22:40 PM   [38;5;3m[RouterExplorer] [39m[32mMapped {/profile, GET} route[39m[38;5;3m +0ms[39m

2020-05-07T14:22:40.868162+00:00 app[web.1]: [32m[Nest] 4   - [39m05/07/2020, 2:22:40 PM   [38;5;3m[RoutesResolver] [39m[32mFilesController {/files}:[39m[38;5;3m +1ms[39m

2020-05-07T14:22:40.868999+00:00 app[web.1]: [32m[Nest] 4   - [39m05/07/2020, 2:22:40 PM   [38;5;3m[RouterExplorer] [39m[32mMapped {/files/upload, POST} route[39m[38;5;3m +0ms[39m

2020-05-07T14:22:40.873240+00:00 app[web.1]: [32m[Nest] 4   - [39m05/07/2020, 2:22:40 PM   [38;5;3m[NestApplication] [39m[32mNest application successfully started[39m[38;5;3m +5ms[39m

2020-05-07T14:22:42.000000+00:00 app[api]: Build succeeded

它不起作用...我在日志中找不到更多的细节,没有更具体的。到底出了什么问题...

ercv8c1e

ercv8c1e1#

在main.ts中,您是否尝试过更改端口号?更改为如下内容:

app.listen(parseInt(process.env.PORT) || 3000)

由于Heroku会尝试使用自己的端口。也许这也可以工作:

const port: number = parseInt(`${process.env.PORT}`) || 3000;
await app.listen(port);
b1payxdu

b1payxdu2#

您是否尝试将heroku配置变量NPM_CONFIG_PRODUCTION设置为false?
你可以通过进入你的heroku Jmeter 板-〉设置-〉显示配置变量来尝试,然后添加上面的值。
发生此错误主要是因为NestJS依赖于项目中的某些devDependencies,如果您在生产模式下构建Nest应用程序,则heroku会在构建Nest应用程序时删除devDependencies。将NPM_CONFIG_PRODUCTION config设置为false将在Nest应用程序的构建过程中包含所有dev依赖项,就像为开发环境构建一样。或者,你可以选择性地将你的nest相关devDependencies移动到package.json中的dependencies,直到问题消失。
如果成功了就告诉我!

uxhixvfz

uxhixvfz3#

在我的情况是:
1.添加过程文件
1.在文件中,添加:web:npm run start:prod
并将脚本放在package.json中。
按照以下教程操作:
https://medium.com/weekly-webtips/deploying-a-nestjs-app-with-heroku-5fa84cb5b6c6

相关问题