NODE_ENV
es una variable de entorno popularizada por el framework express web server. Cuando se ejecuta una aplicación de nodo, puede verificar el valor de la variable de entorno y hacer diferentes cosas según el valor. NODE_ENV
específicamente se usa (por convención) para indicar si un entorno particular es un entorno de producción o de desarrollo . Un caso de uso común es ejecutar código de depuración o registro adicional si se ejecuta en un entorno de desarrollo.
Accediendo a NODE_ENV
Puede usar el siguiente código para acceder a la variable de entorno usted mismo para que pueda realizar sus propias verificaciones y lógica:
var environment = process.env.NODE_ENV
O, alternativamente, usando express ' app.get('env')
( nota: esto está predeterminado a "development"
)
Tenga en cuenta que si no lo ha configurado explícitamente NODE_ENV
para su entorno, lo será undefined
.
Configurando NODE_ENV
Cómo configurar realmente la variable de entorno varía de un sistema operativo a otro, y también depende de la configuración del usuario.
Si desea establecer la variable de entorno como única, puede hacerlo desde la línea de comandos:
- linux y mac :
export NODE_ENV=production
- ventanas :
$env:NODE_ENV = 'production'
A largo plazo, debe persistir esto para que no se desarme si reinicia, en lugar de enumerar todos los métodos posibles para hacerlo, ¡le dejaré buscar cómo hacerlo usted mismo!
La convención ha dictado que solo hay dos valores que debe usar para NODE_ENV
, production
o bien development
, todos en minúscula. No hay nada que le impida agregar más valores, pero probablemente no sea una buena idea, ya que veo mucho de este tipo de código en muchos de los node_modules que uso:
var development = process.env.NODE_ENV !== 'production';
Tenga en cuenta que se trata de una muy mala idea para tratar de conjunto NODE_ENV
desde dentro de una aplicación propio nodo - si lo hace será sólo se aplican al proceso de la cual se establece , por lo que probablemente las cosas no funcionarán como que esperar que. No lo hagas, te arrepentirás.
app.configure('development', ...)
"producción" para establecer ciertas configuraciones solo para entornos de desarrollo o producción. Ver expressjs.com/api.html#app.configure