我有一个NestJS应用程序,其中app.module.ts
具有以下信息
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UserModule } from './user/user.module';
import { CertificationsModule } from './certifications/certifications.module';
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'postgres',
url: process.env.DATABASE_PRIVATE_URL,
database: process.env.PGDATABASE || process.env.POSTGRES_DB,
host: process.env.PGHOST,
port: parseInt(process.env.PGPORT),
username: process.env.PGUSER || process.env.POSTGRES_USER,
password: process.env.PGPASSWORD || process.env.POSTGRES_PASSWORD,
autoLoadEntities: true,
synchronize: false,
ssl: true,
extra: {
ssl: {
rejectUnauthorized: true,
},
},
}),
UserModule,,
CertificationsModule,
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
字符串
这些是我从railway.app Postgres DB获得的环境变量:
DATABASE_PRIVATE_URL=***
DATABASE_URL=***
PGDATA=***
PGDATABASE=***
PGHOST=***
PGPASSWORD=***
PGPORT=***
PGUSER=***
POSTGRES_DB=***
POSTGRES_PASSWORD=***
POSTGRES_USER=***
SSL_CERT_DAYS=***
型
我尝试了所有可能的组合,但最后我只得到了这个:
Error: connect ETIMEDOUT 35.212.181.170:5432
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1555:16)
[Nest] 45 - 12/07/2023, 7:03:32 PM ERROR [TypeOrmModule] Unable to connect to the database. Retrying (2)...
Error: connect ETIMEDOUT 35.212.181.170:5432
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1555:16)
型
我的终端是否缺少任何配置?
1条答案
按热度按时间wnrlj8wa1#
在NestJS中,您可以通过使用config模块沿着dotenv模块从.env文件加载环境变量来使用环境变量。
安装所需的软件包:
字符串
在项目的根目录下创建一个
.env
文件,并添加环境变量:型
创建一个配置模块来加载环境变量。创建一个名为
config.module.ts
的文件:型
在AppModule中导入并使用此MyConfigModule:
型
现在,您的TypeORM配置将使用
.env
文件中的DB_URL环境变量。请记住将.env
文件中的your_actual_database_url_here
替换为实际的数据库URL。