Я сохраняю свою конфигурацию в файле .env
при разработке приложения.
Это мои app.module.ts
:
@Module({
imports: [
ConfigModule.forRoot({ isGlobal: true }),
TypeOrmModule.forRoot({
autoLoadEntities: true,
database: process.env.TYPEORM_DATABASE,
host: process.env.TYPEORM_HOST,
password: process.env.TYPEORM_PASSWORD,
port: (process.env.TYPEORM_PORT as unknown) as number,
type: 'postgres',
username: process.env.TYPEORM_USERNAME,
}),
AuthModule,
(...)
],
controllers: [],
providers: [],
})
export class AppModule {}
И typeorm
используют правильные значения из process.env.TYPEORM_...
переменные.
Это мой auth.module.ts
:
@Module({
providers: [JwtStrategy, (...)],
imports: [
JwtModule.register({
secret: process.env.JWT_SECRET,
(...)
}),
(...)
],
controllers: [AuthController],
})
export class AuthModule {}
И я получаю сообщение об ошибке из JwtModule, что secret
не может быть пустым. Конечно, JWT_SECRET
устанавливается в .env
файле.
Это мой jwt.strategy.ts
:
@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
constructor() {
super({
secretOrKey: process.env.JWT_SECRET,
(...)
});
}
(...)
}
И здесь process.env.JWT_SECRET
загружен правильно.
Я не могу понять, почему мои env-переменные не доступны везде в моем приложении.