2017-02-16 3 views
4

Ich versuche auf einige Umgebungsvariablen zuzugreifen, die process.env verwenden, die von dotenv geladen wurden.Dotenv wird nicht richtig geladen

Meine Ordnerstruktur:

.env 
src 
-- - server.js 

Meine server.js Konfiguration:

(...) 
import auth from './middleware/auth' 
import dotenv from 'dotenv' 
dotenv.load({ 
    path: '../', 
    silent: process.env.NODE_ENV === 'production' 
}) 
auth() 
// Instantiate app 
const app = express(); 

Die Datei, wo ich versuchen process.env Variable zuzugreifen:

(...) 
module.exports = function() { 
     console.log("env", process.env.MONGODB_URI) 
     var options = {}; 
     options.jwtFromRequest = ExtractJwt.fromAuthHeader() 
     options.secretOrKey = process.env.JWT_SECRET 

Welche env, undefined anmeldet, und stürzt dann mit

ab

TypeError: JwtStrategy requires a secret or key

Auch wenn ich .env in src (gleiches Verzeichnis wie Server) zu bewegen und entfernen path in config, es funktioniert nicht.

Antwort

3

Es scheint, dass, wenn Sie den Pfad angeben, können Sie es voll machen müssen:

require('dotenv').config({path: __dirname + '/../.env'}); 

.env, Ihre Datei

+1

Dank für das wieder einen Mann zu beantworten. Das funktioniert nicht – softcode

+0

aktualisieren Sie Ihre Frage und zeigen Sie uns Ihre Ordnerstruktur, wo Sie die .env-Datei haben und wo Sie versuchen, es zu nennen. – yBrodsky

+0

Ordnerstruktur ist das erste Codebeispiel, und ich versuche, es in 'server.js' wie im zweiten Codebeispiel – softcode

1

Ich require('dotenv').config() auf meinem Haupt-NodeJS Js Eintrag Datei und es funktioniert gut.

Vom docs:

Pfad

Standard: .env

Sie können einen benutzerdefinierten Pfad angeben, wenn Sie Ihre Datei-Umgebung enthält Variablen benannt ist oder anders angeordnet.

require('dotenv').config({path: '/custom/path/to/your/env/vars'})

+0

Ich weiß, dass Ihr Problem wahrscheinlich nicht mit dem Dotenv-Modul, verwandt ist, aber ich gab immer noch eine gute Antwort. Ihre App stürzt wahrscheinlich wegen etwas anderem ab. –

+0

http://stackoverflow.com/questions/42284820/express-js-app-entry-point#42284820 –

+0

Ihre Antwort ist ein Link zu Docs. Das war das erste, was ich gelesen habe. Es ist keine gute Antwort sry – softcode

Verwandte Themen