2016-10-10 14 views
2

Ich habe eine .env Datei und es haterfordern process.env in node.js?

ABC='abc'

und wenn ich process.env.ABC in meinem app.js tun kann ich den abc Wert. Wie muss ich es in den Dateien meiner Modelle verwenden? Ich mache das gleiche process.env.ABC in meiner Modelldatei, es wurde undefiniert. Ich nehme an, ich muss es verlangen?

+0

Sie sollten etwas wie Dotenv-Paket verwenden, um Env-Variable von .env-Datei zu laden. Benutzt du irgendwas davon? Sie müssen npm dotenv installieren und dann die Umgebungsvariable laden, wo immer Sie wollen. –

Antwort

0

Sie können dotenv bis require die Datei .env verwenden und in der Variablen a speichern, wenn Sie Ihre App starten. Sobald Sie diese haben, können Sie entweder als Methode Argument übergeben oder wickeln Sie Ihre Modelle in module.exports = (env) => { return myModel; }

Expressgut, wäre es nun so etwas wie

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

app.use((req, res, next) => { 
    app.env = env; 
}); 

sein, können Sie die env von req vorbei zugreifen können die Modelle und get die env mit req.app.get('env')

+0

Was ist der Nutzen dieser .env-Sache? Normalerweise verwende ich einfach .json oder .js wie config.json oder besser config.js und fordere es einfach wie var config = require ('config'). –

+0

Sie alle dienen dem gleichen Zweck, nur mit einem anderen Ansatz. Ich benutze in der Regel eine cfg/index.js, die beim Start der App durch eine Umgebungsvariable überschrieben wird. Verwalte nur cfg/index.js oder eine dev-Variante in SCM. –

+0

SCM bedeutet was? –

Verwandte Themen