Què és Process.Env a Node.Js: variables d'entorn a Node.Js

Bloc

En aquest tutorial, veurem Què és process.env a Node.js | Variables d'entorn a Node.js. Treballar amb variables d'entorn és la gran manera de configurar diferents configuracions de l'aplicació Node.js ...



A molts amfitrions del núvol els agrada Heroku , Azure, AWS , now.sh , etc. utilitza variables d'entorn de node. Els mòduls Node.js utilitzen variables d’entorn. Els amfitrions, per exemple, configuraran el fitxer PORT variable que especifica a quin port ha d'escoltar el servidor perquè funcioni correctament. Els mòduls poden tenir diferents comportaments (com el registre) en funció del valor del fitxer NODE_ENV variable.






Visió general del contingut



  • 1 Què és process.env a Node.js
  • 2 Per què és important la variable d'entorn a Node.js
  • 3 Fonaments de process.env
  • 4 Carregant explícitament variables del fitxer .env

Què és process.env a Node.js

El node injecta la variable global process.env en temps d'execució de la nostra aplicació per utilitzar-la i representa l'estat de l'entorn del sistema de la nostra aplicació quan s'inicia. Per exemple, si el sistema té el fitxer CAMÍ conjunt de variables, això us serà accessible a través de process.env.PATH variable que podeu utilitzar per comprovar on es troben els binaris i fer-hi trucades externes si cal.



Per què és important la variable d'entorn a Node.js

Quan escrivim el codi, mai no podrem estar segurs d’on es pot desplegar la nostra aplicació. Si necessitem la base de dades en desenvolupament, girem la instància de la mateixa i hi enllacem mitjançant una cadena de connexió, semblant a 127.0.0.1:3306 . Tanmateix, quan el desplegem al servidor en producció, és possible que haguem de vincular-lo al servidor remot, diguem-ne 32.22.2.1 .






Ara podem escriure el codi d’enllaç de la base de dades mitjançant el fitxer ** process.env **.

on comprar fitxes d'allau
const connection = new Connection(process.env.DB_CONNECTION_STRING);

Especificar una dependència de serveis externs ens permet enllaçar amb el clúster de base de dades protegit per balanç de càrrega remot que pot escalar independentment d’una aplicació i ens permetrà tenir les múltiples instàncies de la nostra aplicació independentment d’un servei de base de dades.

Conceptes bàsics de process.env

L’accés a les variables d’entorn a Node.js no s’admet de manera immediata. Quan s'iniciï el procés Node.js, proporcionarà automàticament accés a totes les variables d'entorn existents creant el fitxer env objecte com a propietat del procés objecte global.

Estic fent servir Node.js versió 11. Ara, si no heu instal·lat Node.js, instal·leu-lo.

Després, creeu una carpeta i, a l'interior, creeu un fitxer anomenat ** app.js ** i afegiu el codi següent.

console.log(process.env);

Ara, aneu al terminal i premeu l'ordre següent.

El codi anterior hauria de generar totes les variables d'entorn que coneix aquest procés Node.js. Si volem accedir a una variable específica, accediu-hi com qualsevol propietat de l'objecte. Accedim a la propietat PORT.

console.log(process.env.PORT);

Veureu el sense definir ** ** a la sortida perquè encara hem definit un port específic.

twitter ha suprimit l'arxiu de tuits

Amfitrions del núvol com Heroku o Azure; tanmateix, utilitzeu el fitxer PORT variable per indicar-vos en quin port haureu d'escoltar el servidor perquè l'encaminament funcioni correctament. Per tant, la propera vegada que configureu el fitxer servidor web , heu de determinar el port per escoltar-lo comprovant PORT primer i donant-li un valor per defecte d'una altra manera.

Consulteu el codi següent.

// app.js const app = require('http').createServer((req, res) => res.send('Ahoy!')); const PORT = process.env.PORT || 4000; app.listen(PORT, () => { console.log(`Server is listening on port: ${PORT}`); });

Al codi anterior, hem creat el servidor HTTP i aquest servidor s’executa al port definit al fitxer **. Env ** o per defecte 4000.

Executeu el fitxer i consulteu la sortida.

Des del process.env és simplement un objecte normal, podem establir / anul·lar els valors molt fàcilment.

Carregant explícitament variables del fitxer .env

Tenim dos nivells per treballar quan es tracta d’un subministrament de servidors: 1) infraestructura i 2) nivells d’aplicació. Podem establir un entorn mitjançant la lògica de nivell d’aplicació o bé podem utilitzar l’eina per proporcionar-nos un entorn.

Una eina estàndard a nivell d'aplicació és ** dotenv, ** que ens permet carregar les variables d'entorn des d'un fitxer anomenat .env . El podem instal·lar mitjançant NPM mitjançant l'ordre següent.

npm install dotenv --save

Després, afegiu la línia següent a la part superior del fitxer d'entrada.

require('dotenv').config();

El codi anterior carregarà automàticament el fitxer .env fitxer a l'arrel del projecte i inicialitzeu els valors. Ometrà les variables que ja s'hagin definit.

No heu d'utilitzar el fitxer .env arxiu al vostre entorn de producció, en canvi, establiu els valors directament a l'amfitrió respectiu. Per tant, és possible que vulgueu embolicar la declaració de configuració a la sentència if.

if (process.env.NODE_ENV !== 'production') { require('dotenv').config(); }

Ara, creeu un fitxer anomenat **. Env ** i afegiu la següent línia de codi dins d’aquest fitxer **. Env **. Heu de crear el fitxer **. Env ** a l'arrel de la carpeta del projecte.

PORT = 3000

Ara, escriviu el següent codi dins del fitxer ** app.js **.

// app.js if (process.env.NODE_ENV !== 'production') { require('dotenv').config(); } const app = require('http').createServer((req, res) => res.send('Ahoy!')); const PORT = process.env.PORT || 4000; app.listen(PORT, () => { console.log(`Server is listening on port: ${PORT}`); });

Ara, executeu el servidor i veureu que el servidor s’executa PORT: 3000 i no el 4000.

Tot i que és convenient per a les necessitats de desenvolupament, es considera la mala pràctica unir l’entorn amb la nostra aplicació, així que mantingueu-ho fora afegint .env al vostre .gitignore dossier.

instal·lar ant a ubuntu

A nivell d’infraestructura, podem utilitzar les eines del gestor de desplegament com PM2, Docker Compose i Kubernetes per especificar un entorn.

PM2 utilitza un fitxer ecosistema.yaml on podeu especificar l’entorn mitjançant el fitxer env propietat.

apps: - script: ./app.js name: 'my_application' env: NODE_ENV: development env_production: NODE_ENV: production ...

Docker Compose també permet el entorn propietat que cal especificar al manifest de servei.

version: '3' services: my_application: image: node:8.9.4-alpine environment: NODE_ENV: production ... ...

Kubernetes té un equivalent env propietat al manifest de plantilla de pod que ens permet configurar l'entorn:

kind: Deployment apiVersion: extensions/v1beta1 metadata: name: my_application spec: ... template: spec: env: - name: NODE_ENV value: production ...

Utilitzant el process.env. * resulta correctament en aplicacions que es poden provar amb facilitat i desplegar-les / escalar-les elegantment. Per tant, ho hem vist process.env a Node.js molt profundament en aquest article.

Finalment, Què és process.env a Node.js | Les variables d'entorn de Node.js s'han acabat.

# node-js # desenvolupament web #javascript

appdividend.com

Què és Process.Env a Node.Js: variables d'entorn a Node.Js

En aquest tutorial, veurem Què és process.env a Node.js | Variables d'entorn a Node.js. Treballar amb variables d’entorn és la gran manera de configurar diferents configuracions de l’aplicació Node.js ...