Solución:
process.env.VARIABLE_NAME
devoluciones undefined
porque el entorno de ejecución de Node.js no conoce el recién agregado VARIABLE_NAME
todavía. Para solucionar el problema, es necesario reiniciar el entorno de ejecución de Node.js (por ejemplo, IDE).
Los siguientes pasos se pueden utilizar para reproducir este problema:
- Abra IDE como WebStorm y escriba un programa Node.js simple:
console.log(process.env.VARIABLE_NAME)
. Se imprimiráundefined
como se esperaba, comoVARIABLE_NAME
aún no está definido. Mantenga el IDE en funcionamiento, no lo cierre. - Perfil de entorno abierto como
.bash_profile
y añadirexport VARIABLE_NAME=mySensitiveInfo
en eso. - Abra la consola del sistema y ejecute
source .bash_profile
, para que lo anteriorexport
se ejecutará la sentencia. A partir de ahora, siempre que se abra la consola del sistema,VARIABLE_NAME
existe una variable de entorno. - En la consola del sistema, ejecute el programa Node.js en el paso 1, imprimirá
mySensitiveInfo
. - Cambie a IDE y ejecute el programa Node.js, se imprimirá
undefined
. - Reinicie el IDE y ejecute el programa Node.js, esta vez, imprimirá
mySensitiveInfo
nodemon.json
El archivo es solo para establecer la configuración específica de nodemon. Por lo tanto, para crear variables de entorno personalizadas, podemos usar el paquete dotenv
Primero, instale el paquete dotenv
npm install dotenv --save
después de eso, cree el archivo .env en la raíz e incluya las variables de entorno como fuelles
MONGO_ATLAS_PW=xxxxx
JWT_KEY=secret
Finalmente, dentro de tu app.js
inserte el archivo después de sus importaciones.
require('dotenv').config()
Entonces puedes usar el entorno varibale como este
process.env.MONGO_ATLAS_PW
process.env.JWT_KEY
Tengo un problema en este momento, y lo uso y lo resolví en la configuración del paquete web
const plugins = [
new webpack.NoEmitOnErrorsPlugin(),
// after compile global will defined `process.env` this Object
new webpack.DefinePlugin({
BUILD_AT : Date.now().toString(32),
DEBUG: process.env.NODE_ENV !== 'production',
'process.env': {
'NODE_ENV': JSON.stringify(process.env.NODE_ENV || "development"),
'VARIABLE_NAME': JSON.stringify(process.env.VARIABLE_NAME)
}
})
]