Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.2K
Visualizações
Variable de entorno con dotenv y TypeScript

Creo este archivo .env :

 TYPE=xxx HOST=xxx, PORT=xxx, USERNAME=xxx, PASSWORD=xxx, DATABASE=xxx,

en mi archivo uso de esta manera:

 import * as dotenv from "dotenv"; dotenv.config(); export const typeOrmConfig: TypeOrmModuleOptions = { port: process.env.PORT }

pero solo puedo usar mi variable de port del archivo .env y no puedo usar el resto de las variables, ¿alguien puede decirme por qué no puedo usar el resto de mis vars?

over 4 years ago · Santiago Trujillo
8 Respostas
Responde à pergunta

0

En realidad, ha definido la ruta del archivo .env

Prueba así

 import * as dotenv from "dotenv"; dotenv.config({ path: __dirname+'/.env' });

Prueba esto también

 require('dotenv').config({ path: __dirname+'/.env' });

Cambie la ruta del archivo .env según sea necesario

referencia: https://www.npmjs.com/package/dotenv

over 4 years ago · Santiago Trujillo Relatório

0

Podría usar la forma integrada de NestJs para manejar esto (ConfigModule).

Configuración | nidos

 // main.ts import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { InventoriesModule } from './inventories/inventories.module'; import typeORMConfig from './config/database.config'; import { TypeOrmModule } from '@nestjs/typeorm'; import { PrismaModule } from './prisma/prisma.module'; @Module({ imports: [ ConfigModule.forRoot(), // load .env file TypeOrmModule.forRoot(typeORMConfig()), InventoriesModule, PrismaModule ], }) export class AppModule { }
 // ./config/database.config import { TypeOrmModuleOptions } from '@nestjs/typeorm'; export default function (): TypeOrmModuleOptions { return { 'type': 'mysql', 'host': process.env.DB_HOST, 'port': 3306, 'username': process.env.DB_USERNAME, 'password': process.env.DB_PASSWORD, 'database': process.env.DB_DATABASE, 'entities': ['dist/**/*.entity{.ts,.js}'], 'synchronize': false } };
over 4 years ago · Santiago Trujillo Relatório

0

Si se trata de una aplicación React y está utilizando el script de reacción, debe anteponer la clave con REACT_APP_; de lo contrario, se ignorarán.

 REACT_APP_TYPE=xxx REACT_APP_HOST=xxx REACT_APP_PORT=xxx REACT_APP_USERNAME=xxx REACT_APP_PASSWORD=xxx REACT_APP_DATABASE=xxx

Ref -> https://create-react-app.dev/docs/adding-custom-environment-variables/

over 4 years ago · Santiago Trujillo Relatório

0

Mi proyecto tiene una configuración de eslint , por lo que tengo que deshabilitar la import/first

 /* eslint-disable import/first */ require('dotenv').config(); import Koa from 'koa'; import { Logger } from './utils/loggers'; import { app } from './app'; const LOGGER = Logger(); const port = parseInt(process.env.PORT as string, 10) || 8081; const server = (server: Koa) => { server.listen(port, () => { LOGGER.info(`> Ready on http://localhost:${port}`); }); }; server(app());

También podemos usar:

 import 'dotenv/config'

pero

 require('dotenv').config({path:path_to_dotenv});

es más flexible.

over 4 years ago · Santiago Trujillo Relatório

0

Si obtiene un valor indefinido y usa ES6, debe importarlo de la siguiente manera (el archivo .env debe estar en el directorio raíz del proyecto):

¿Cómo uso dotenv con import?

  1. Precarga dotenv: nodo --requiere dotenv/config index.js (Nota: no necesitas importar dotenv con este enfoque)
  2. Importe dotenv/config en lugar de dotenv (Nota: no necesita llamar a dotenv.config() y debe pasar opciones a través de la línea de comandos o variables de entorno con este enfoque)
  3. Cree un archivo separado que ejecutará la configuración primero como se describe en este comentario en el n.° 133

Tienes que importar en el archivo app.ts de tu proyecto (primero) Ejemplo con express:

aplicación.ts

 //here import 'dotenv/config' import express from 'express' import { userRouter } from './routes/user' const app = express() app.use(`/users`, userRouter) app.listen(process.env.PORT, () => { console.log(`running`) })

Ahora úsalo en cualquier parte de tu proyecto

Siempre es bueno leer la documentación .

over 4 years ago · Santiago Trujillo Relatório

0

Debe importar el dotenv y ejecutar dotenv.config() en la parte superior del archivo raíz.

Tan pronto como sea posible en su aplicación, solicite y configure dotenv. Ref: dotenv-npm

over 4 years ago · Santiago Trujillo Relatório

0

Esta es la forma en que Nestjs establece variables de entorno:

 npm install @nestjs/config

Ese paquete usa internamente el paquete dotenv que reúne todas las variables de entorno en su máquina.

aplicación.módulo.ts

 // configModule chooses the .env file, configservice extract the settings import { ConfigModule, ConfigService } from '@nestjs/config'; @Module({ imports: [ // list your project's modules ConfigModule.forRoot({ // this is set so we do not have to reimport the ConfigModule all over the place into other modules isGlobal: true, envFilePath: `.env.${process.env.NODE_ENV}`, }), // Notice we are not using TypeOrmModule.forRoot({}) // we set this to get access to ConfigService through dependency injection system TypeOrmModule.forRootAsync({ // this tell DI system, find the configService which has all of the config info inject: [ConfigService], useFactory: (config: ConfigService) => { return { type: 'sqlite', database: config.get<string>('DATABASE'), synchronize: true, entities: [User, Report], }; }, }),
over 4 years ago · Santiago Trujillo Relatório

0

También tuve este problema, me estaba volviendo loco hasta que me di cuenta de que copié los valores de entorno pegados de un archivo YAML que no tiene el mismo formato que el archivo .env .

Uno usa : , el otro usa = .

Si ayuda a otra alma de desarrollador :-)

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda