首页 > 解决方案 > 如何在本地运行 Express 应用程序并连接到远程 Heroku Postgres 实例

问题描述

我有一个Express.js在 a 中运行的应用程序,当它在 Heroku 应用程序本身中运行时,它可以Heroku instance很好地连接到我已经连接到它的应用程序。Heroku PostgreSQL instance

但是当我在开发和调试时尝试在Express app本地运行时,它无法连接到remote Postgres database.

这迫使我必须将对处理数据库查询的代码进行小的更改推送到 Heroku 并在那里测试它们,通过 Heroku CLI 检查错误消息,在本地修复错误并重复,这比我能够在本地执行此操作要慢得多.

我在其他地方看到这通常是由于 SSL 在本地被禁用,所以我尝试了一些人们推荐的解决方案,比如使用 Heroku CLI 在本地进行端口转发,然后使用 Visual Studio Code 连接到这个本地版本,但我无法获得这个工作。

下面是launch.json我在 Visual Studio Code 中调试时被告知用于连接数据库的文件:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "attach",
            "name": "Heroku",
            "address": "localhost",
            "port": 9229,
            "protocol": "inspector",
            "localRoot": "${workspaceFolder}\\source\\index.js",
            "remoteRoot": "/app"
        }
    ]
}

下面是我被告知用于在本地转发 Heroku 实例的命令:

heroku ps:forward 9229 -a my-app-name

当我尝试运行该命令时,它说它无法连接到测功机并检查它是否正在运行。当我检查时,它显示它正在运行,只是闲置,而且我这个月的配额还远未满。

有没有我遗漏的步骤?或者有没有比这更容易的连接到远程数据库的完全不同的方式?

标签: node.jspostgresqlexpressherokuheroku-postgres

解决方案


推荐阅读