Search code examples
nestjsnest

Why process.env.JWT_EXPIRE is undefind? Nest js


Why process.env.JWT_EXPIRE is undefind?

 JwtModule.register({
      secret: jwtConstants.secret,
      signOptions: { expiresIn: process.env.JWT_EXPIRE },
    }),

[Nest] 12700 - 09.04.2023, 05:06:30 ERROR [ExceptionsHandler] "expiresIn" should be a number of seconds or string representing a timespan Error: "expiresIn" should be a number of seconds or string representing a timespan

.env

JWT_EXPIRE=3600

auth.module.ts

  imports: [
    UsersModule,
    PassportModule.register({ session: true }),
    JwtModule.register({
      secret: jwtConstants.secret,
      signOptions: { expiresIn: process.env.JWT_EXPIRE },
    }),
  ],

app.module.ts

@Module({
  imports: [ConfigModule.forRoot(), AuthModule, UsersModule],
  controllers: [],
  providers: [
    {
      provide: APP_GUARD,
      useClass: JwtAuthGuard,
    },
  ],
})
export class AppModule {}


Solution

  • you should install dotenv or install cross-env and use it in package.json like this:

    "start:dev": "cross-env NODE_ENV=debug nest start --watch"