Wie kann ich eine Umgebungsvariable in node.js festlegen?


Antworten:


139

Sie können Ihre Umgebungsvariablen wie folgt festlegen process.env:

process.env['VARIABLE'] = 'value';

-ODER-

process.env.VARIABLE = 'value';

Der Knoten sollte sich um die Plattformspezifikationen kümmern.


4
Ich glaube nicht, dass Sie das tun var process = require('process')müssen. Der Prozess ist eine globale Variable.
Alessioalex

82
Beachten Sie jedoch, dass dadurch nur die Variable in Ihrem Knotenprozess und alle von ihm aufgerufenen untergeordneten Prozesse festgelegt werden. Beispielsweise wird die Variable nicht in der Shell belassen, wenn der Knotenprozess beendet wird (das Ändern der Umgebung eines übergeordneten Prozesses ist sehr systemabhängig und nicht immer möglich).
Ebohlman

2
jemand eine Meinung zu process.env.variable vs global.variable abgeben?
Scott Silvi

3
process.env.VARIABLEist in Ordnung, wenn der Variablenname eine bekannte Konstante ist, während er process.env['VARIABLE']auf jeden Fall funktioniert; Die ursprüngliche Frage enthielt nicht genügend Details, so dass das vielseitigere Beispiel besser geeignet schien.
Lanzz

3
@ BillMorris nein, es ist keinem Prozess möglich, die Umgebung seiner Eltern zu ändern
lanzz

2

Zuerst sollten Sie dieses Paket installieren: - https://github.com/motdotla/dotenv [ npm install dotenv]

Dann müssen Sie eine .env-Datei im Stammverzeichnis Ihres Projekts erstellen und dort können Sie Variablen wie die folgenden hinzufügen: -

NODE_ENV=PRODUCTION
DATABASE_HOST=localhost

Jetzt können Sie wie folgt einfach auf diese Variablen in Ihrem Code zugreifen: -

require('dotenv').config()
console.log(process.env.NODE_ENV);

Es hat bei mir funktioniert, hoffentlich hilft das.


1
Wie sicher ist die von dotenv verwendete .env-Datei? Wenn die Geheimnisse Klartext in Umgebungszeichenfolgen in der ENV-Datei sind, ist das sicherer, als sie als Klartext in Ihrem Knotencode zu haben? Welches ist eindeutig ein Nein-Nein?
Ric

0

node v14.2.0 Um die env-Variable festzulegen, erstellen Sie zunächst einen Dateinamen config.env in Ihrem Projekt-Ausgangsverzeichnis und schreiben Sie dann beispielsweise alle benötigten Variablen

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

Jetzt installiere dotenv von npm, dotenv wird deine Arbeit auslagern

npm i dotenv

Jetzt in Ihrem Server-Starter-Skript ist es in meinem Fall server.js. Verwenden Sie doenv, um env-Variablen zu laden.

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}...`);
});

Ich verwende Express, meinen gesamten Express-Code in app.js, und schreibe hier als Referenz

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;

Starten Sie jetzt Ihren Server über die Konsole. Ich verwende nodemon . Sie können ihn von npm aus installieren.

nodemon server.js
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.