如何从 Nest.js 连接到 Heroku Postgres?

Posted

技术标签:

【中文标题】如何从 Nest.js 连接到 Heroku Postgres?【英文标题】:How do I connect to Heroku Postgres from Nest.js? 【发布时间】:2021-01-25 01:31:12 【问题描述】:

在运行heroku config 时我看到了(有一些遗漏)

DATABASE_URL: postgres://<xxxx>:<xxxx>@ec2-xx-xx-xxx-xx.compute-1.amazonaws.com:5432/dm74hmu71b97n

我知道的格式是postgres://&lt;user&gt;:&lt;password&gt;@&lt;hostname&gt;:&lt;port&gt;/&lt;database&gt;。但现在在我的 Nest.JS 应用程序中,我像这样连接到 postgres:

@Module(
    imports: [
        TypeOrmModule.forRootAsync(
            imports: [ConfigModule],
            inject: [ConfigService],
            useFactory: (configService: ConfigService) => (
                type: 'postgres',
                host: configService.get('POSTGRES_HOST'),
                port: configService.get('POSTGRES_PORT'),
                username: configService.get('POSTGRES_USER'),
                password: configService.get('POSTGRES_PASSWORD'),
                database: configService.get('POSTGRES_DB'),
                entities: [__dirname + '/../**/*.entity.ts,.js'],
                synchronize: false,
            ),
        ),
    ],
)
export class DatabaseModule 

我想我可以手动解析 process.env.DATABASE_URL 我想一定有更好/更简单的方法。

【问题讨论】:

【参考方案1】:
useFactory: (configService: ConfigService) => (
    url: configService.get('DATABASE_URL'),
    type: 'postgres',
    entities: [__dirname + '/../**/*.entity.ts,.js'],
    synchronize: false,
),

【讨论】:

以上是关于如何从 Nest.js 连接到 Heroku Postgres?的主要内容,如果未能解决你的问题,请参考以下文章

Nest.js TypeORM 连接到本地数据库(在 docker 容器上)

如何从本地机器连接到heroku pg?

如何在 Heroku 中将 Kafka 连接到 Postgres

从 Heroku 连接到 MongoDb 时应用程序超时

从 Heroku 上的 Node.js 连接到 CloudSQL

Nest.js 在护照本地策略中获取请求标头