TECNOLOBO

No recuerdas tu codigo?
Se te olvido como se hace?

Aqui podras guardar lo que necesiten
Y cuando sea necesesario

Creado por julian gomez
iiiiii

Variables de entorno



Descripcion

para usar esta propiedad es necesario usar paquete

Nota1


1. instalar los siguientes paquetes
 yarn add @nestjs/config
2. en app moudulo inyectar "[ConfigModule.forRoot()"
3. creamos el archivo .env y creamos nuestra variables de entorno
	NOTA: pero vamos tambien a controlar si la variable de enrotno viene vacia le pondremos un valor por defecto
4. para crear varibales de entorno por defecto crearemos un nuevo archivo llamado

5. importar el ConfigModule donde se desea llamar la variable de entorno y para este caso llamaremos pokemon
importamos el ConfigModule y luego lo usaremos en el PokemonService.


NOTA: para hacer que una varibale de entonro sea obligatoria usar el paquete  este tambien se puede implementar con el configModule
https://www.npmjs.com/package/joi
						

Modulo


import { Module } from '@nestjs/common';
import { PokemonService } from './pokemon.service';
import { PokemonController } from './pokemon.controller';
import { MongooseModule } from '@nestjs/mongoose';
import { Pokemon, PokemonSchema } from './entities/pokemon.entity';
import { ConfigModule } from '@nestjs/config';

@Module({
  controllers: [PokemonController],
  providers: [PokemonService],
  imports:[
    ConfigModule, //aqui para poder usarlo en cualquier partde del modulo de POKEMON
   )
  ]
  ,exports:[MongooseModule]
})
export class PokemonModule {}
						

Servicio


import { Injectable, Body, Post, Controller } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose/dist/common';
import { ConfigService } from '@nestjs/config';


@Injectable()
export class PokemonService {

  constructor(
    @InjectModel(Pokemon.name)
    private readonly PokemonModel:Model<Pokemon>,
    private readonly configService:ConfigService //Se inyecta el paquet configServices para manejar varibles de entonreo con valores por defecto.
  ){

  }

  async findAll({limit=10,offset=0}:PaginationDto) {    
    console.log(this.configService.get('defaultLimit'));   //De esta forma se llama la variable de entorno

    return {}
  }

  
}

						

Controlador


a
						

Entity


// ARCHIVO : app.config.ts
export const vairbleEntornoConDefectos=()=>{
  return {
    envireomen:process.env.NODE_ENV||'dev', //Si no viene que se ponga dev y asi con las demas propiedades
    mongodb:process.env.MONGODB,
    port:process.env.PORT||3002,
    default_limit:process.env.DEFAULT_LIMIT||7,
  }
}
						

App.module


import { join } from 'path';
import { Module } from '@nestjs/common';
import { ServeStaticModule } from '@nestjs/serve-static';
// import { AppController } from './app.controller';
// import { AppService } from './app.service';
import { PokemonModule } from './pokemon/pokemon.module';
import { MongooseModule } from '@nestjs/mongoose';
import { CommonModule } from './common/common.module';
import { SeedModule } from './seed/seed.module';
import { ConfigModule } from '@nestjs/config';
import { vairbleEntornoConDefectos } from './config/app.config';

@Module({
  imports: [
    
    //ConfigModule.forRoot(), //importante en el inicio
    
    ConfigModule.forRoot(
      {
        load:[vairbleEntornoConDefectos] //Le pasadmos el archivo con nuestra variables de entorno configuradas con valores por defecto
      }
    ),
    
    ServeStaticModule.forRoot({
      rootPath: join(__dirname,'..','public'),
      }),
    PokemonModule,
    MongooseModule.forRoot('mongodb://localhost:27017/nest-pokemon'),
    CommonModule,
    SeedModule
  ],
  controllers: [],
  providers: [],
})
export class AppModule {
}

						

Main


a
						

Vista


a