2017-11-27 4 views
0

Ich habe zwei Dotenv-Dateien, eine für die Entwicklung und eine andere für den Test.Knoten Dotenv-Dateien laden nicht für Test env

const dotenv = require('dotenv'); 

if (process.env && process.env.NODE_ENV) { 
    dotenv.config({path: '.env.' + process.env.NODE_ENV}); 
} else { 
    dotenv.config({path: '.env.development'}); 
} 

const http = require('http'); 
const app = require('../src/app'); 

const port = parseInt(process.env.PORT, 10) || 8000; 
app.set('port', port); 

const server = http.createServer(app); 
server.listen(port); 

Hier sind meine Fragen:

Wann wird die Serverlast dotenv Dateien in meinem Fall? Wenn ich unter test env laufe, warum bekomme ich für diese process.env Variablen undefiniert? Es scheint mir, dass diese Datei nur einmal ausgeführt wird, wenn ich NODE_ENV ändere, ändert es nicht die zu ladende Datei.

Also kurz gesagt:

Meine Entwicklung dotenv funktioniert, aber nur Probleme, wenn es um test dotenv Wechsel

+0

Das sollte funktionieren. Vielleicht ist es so, wie Sie Ihr Setup ausführen. Vielleicht stellen Sie sicher, dass Sie den richtigen Pfad für 'console.log ('. Env.' + Process.env.NODE_ENV)' erhalten, wenn Sie im Testmodus laufen? – cyberwombat

Antwort

0

Sollte ich mehrere .env Dateien haben?

Nein. Wir empfehlen dringend, eine "Haupt" .env-Datei und eine "Umgebung" .env-Datei wie .env.test. Ihre Konfiguration sollte zwischen den Bereitstellungen variieren, und Sie sollten keine Werte zwischen -Umgebungen freigeben.

Von dotenv documentation

Verwandte Themen