Jak ustawić zmienną środowiskową w node.js?
Wolałbym nie polegać na niczym konkretnym dla platformy, takim jak uruchamianie eksportu lub zestawu cmd.exe.
Odpowiedzi:
Możesz ustawić zmienne środowiskowe w process.env:
process.env['VARIABLE'] = 'value';
-LUB-
process.env.VARIABLE = 'value';
Węzeł powinien zadbać o specyfikę platformy.
var process = require('process'), proces jest obecną globalną zmienną.
process.env.VARIABLEjest w porządku, jeśli nazwa zmiennej jest znaną stałą, podczas gdy process.env['VARIABLE']działa w każdym przypadku; pierwotne pytanie nie zawierało wystarczającej ilości szczegółów, więc bardziej wszechstronny przykład wydawał się bardziej odpowiedni.
Najpierw należy zainstalować ten pakiet: -
https://github.com/motdotla/dotenv [ npm install dotenv]
Następnie musisz utworzyć plik .env w katalogu głównym projektu i tam możesz dodać zmienne, jak poniżej: -
NODE_ENV=PRODUCTION
DATABASE_HOST=localhost
Teraz możesz łatwo uzyskać dostęp do tych zmiennych w swoim kodzie, jak poniżej: -
require('dotenv').config()
console.log(process.env.NODE_ENV);
U mnie zadziałało, mam nadzieję, że to pomoże.
node v14.2.0 Aby ustawić zmienną env najpierw utwórz nazwę pliku config.env w katalogu domowym projektu, a następnie zapisz wszystkie potrzebne zmienne, na przykład
config.env
NODE_ENV=development
PORT=3000
DATABASE=mongodb+srv://lord:<PASSWORD>@cluster0-eeev8.mongodb.net/tour-guide?retryWrites=true&w=majority
DATABASE_LOCAL=mongodb://localhost:27017/tours-test
DATABASE_PASSWORD=UDJUKXJSSJPWMxw
teraz zainstaluj dotenv z npm, dotenv odciąży twoją pracę
npm i dotenv
teraz w skrypcie startowym serwera, w moim przypadku jest to server.js użyj doenv do załadowania zmiennych env.
const dotenv = require('dotenv');
dotenv.config({ path: './config.env' });
const app = require('./app'); // must be after loading env vars using dotenv
//starting server
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`app running on port ${port}...`);
});
Używam express, całego mojego kodu ekspresowego w app.js, pisząc tutaj w celach informacyjnych
const express = require('express');
const tourRouter = require('./route/tourRouter');
const userRouter = require('./route/userRouter');
if (process.env.NODE_ENV === 'development') {
console.log('mode development');
}
app.use(express.json());
app.use('/api/v1/tours', tourRouter);
app.use('/api/v1/users', userRouter);
module.exports = app;
teraz uruchom serwer za pomocą konsoli, ja używam nodemona , możesz go zainstalować z npm;
nodemon server.js