2017-06-14 4 views
0

Hier ist meine Projektstruktur: project structurenpm dotenv Umgebungsvariablen nicht in NodeJS Modul erkannt

package.json:

"scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1", 
    "dev": "nodemon $NODE_DEBUG_OPTION server/boot.js --exec babel-node", 
    "start": "nodemon server/boot.js --exec babel-node", 
    "build": "babel server -d dist/server", 
    "serve": "node dist/server/boot.js" 
    }, 

Die Hauptdatei ist server/boot.js:

import dotenv from 'dotenv'; 
import path from 'path'; 

dotenv.load({path: path.join(__dirname, '.env')}); 

import _ from 'underscore'; 
import configs from './config/index'; 

Die server/config/index.js ist nur ein Lauf-Datei, die die anderen Konfigurationsdateien importiert:

import app from './app'; 
import database from './database'; 

export default Object.assign({}, app, database); 

In jedem der Konfigurationsdateien Ich bin nicht in der Lage für den Zugriff auf alle Eigenschaften des process.env Objekt, das sind in der Datei .env definiert.

Dies ist eine der Konfigurationsdateien als Referenz:

export default { 
    app: { 
     host: process.env.HOST || 'localhost', 
     port: process.env.PORT || 9000, 
    } 
} 

Hier process.env.HOST nicht definiert ist, aber der Schlüssel ist in der .env Datei.

Was mache ich falsch?

Antwort

1

process.env Objekte, die in der .env-Datei definiert sind.

Können Sie bitte genauer über die Datei process.env?

Per https://www.npmjs.com/package/dotenv#rules sollte die Datei im Format:

VAR1=value1 
VAR2=value2 

und nicht in

export default { 
    VAR1: 'value1', 
    VAR2: 'value2' 
} 
Verwandte Themen