无法连接到我在heroku上的数据库插件



我试图使用命令Heroku pg:psql连接到我在Heroku中的数据库插件,但得到了低于的响应

--> Connecting to postgresql-regular-61345
unrecognized win32 error code: 123could not find a "psql" to execute
unrecognized win32 error code: 123could not find a "psql" to execute
psql: fatal: could not find own program executable
!    psql exited with code 1

在使用heroku logs-tail命令后,我得到了以下错误

sh: 1: nodemon: not found
Process exited with status 127
State changed from starting to crashed

我还可以看到所有进程都以SIGTERM停止,进程以状态143 退出

解决步骤我已采取

  1. 验证环境变量是否具有在我的PC 上安装的postgress14的路径

  2. 在我的后端代码中向根文件添加了一个procfile;web:文件"中的node matthewfaceappback/server.js;

  3. 使用process.env.port||3000 将我的设置端口更改为可变端口

  4. 在heroku 中的配置变量上设置所有环境变量,包括我的数据库url(默认设置(

  5. 已验证有启动脚本

  6. 使用";npm更新";。在做了这件事之后,我开始预测进程以SIGTERM停止和进程以状态143退出的问题

  7. 我将nodemon从devDependencies移到了dependencies。nodemon版本为2.0.15

  8. 在package.json中,我使用节点的版本输入了一个引擎参数,在我的例子中是

    {"发动机":{"节点":"14.17.4";}}

  9. 我用";heroku重启";

以下是错误的屏幕截图链接

https://www.dropbox.com/s/5bdbyi9e99lbxhu/pic1.PNG?dl=0
https://www.dropbox.com/s/41euniaes5q68c9/pic2.PNG?dl=0
https://www.dropbox.com/s/50oqzbwmwrqogax/pic3.PNG?dl=0

将nodemon放回devDependencies中,并将其作为第二个节点脚本添加到package.json:中

"scripts": {
"start": "node matthewfaceappback/server.js",
"dev": "nodemon matthewfaceappback/server.js"
},

这两个错误完全无关。

数据库连接错误

根据问题的标题,我认为第一个问题是您目前真正关心的问题,它表明Heroku CLI在您的本地机器上找不到PostgreSQL客户端。

文件提出以下建议

在Windows上设置Postgres

使用Windows安装程序在Windows上安装Postgres。

请记住更新PATH环境变量以添加Postgres安装的bin目录。目录类似于:C:Program FilesPostgreSQL<VERSION>bin。像heroku pg:psql这样的命令依赖于PATH,如果PATH不正确,则不起作用。

如果您还没有在本地安装Postgres,请这样做。(无论如何,这是一个好主意,因为您应该在本地开发,并且可能需要一个数据库。(

然后确保将其bin/目录添加到PATH环境变量中。

Nodemon错误

第二个问题是因为您正试图在生产中使用nodemon。Heroku在构建Node.js应用程序后,将开发依赖关系从中剥离出来,这通常是有意义的。Nodemon是一个开发工具,不应该用于生产托管。

根据package.json的内容,这可能很简单,只需将start脚本从nodemon some-script.js更改为node some-script.js即可。或者,您可以添加一个Procfile,其中包含您实际想要在Heroku:上运行的命令

web: node some-script.js

另请参阅需要帮助部署使用MongoDB Atlas和Express 创建的RESTful API

最新更新