it-swarm.com.de

Wie erkennt man die Umgebung in einer express.js-App?

Wie erkennen Sie, in welcher Umgebung eine expressJS-App ausgeführt wird? (Entwicklung, Test, Produktion?). Es gibt nichts in process.env, das eine Umgebung anzeigt ...

Ich bin mir bewusst, dass Sie in jeder Umgebung Variablen in Ihrer Konfigurationsdatei deklarieren können. Dies ist jedoch nicht hilfreich, wenn Sie Module dynamisch laden.

51
sethvargo

Sie können die Umgebung entweder überprüfen, indem Sie app.settings.env überprüfen (dies wird in Express funktionieren), oder Sie können dies direkter tun, indem Sie process.env.NODE_ENV überprüfen (die Umgebung ist die in dieser Variablen oder standardmäßig "Entwicklung") arbeitet in anderen Bibliotheken wie Socket.IO usw.).

65
alessioalex

app.get ('env') würde auch die Umgebung zurückgeben. 

if ( app.get('env') === 'development' ) {
    app.use(express.errorHandler());
}
23

Ich möchte einen einfachen Weg ansprechen, um NODE_ENV-Variablen an Ihr Knotenskript zu übergeben, um auf sie in process.env zugreifen zu können.

  "scripts": {
    "start": "./node_modules/.bin/cross-env NODE_ENV=development ./node_modules/.bin/nodemon server.js",
    "debug": "./node_modules/.bin/cross-env NODE_ENV=development ./node_modules/.bin/nodemon --debug server.js",
    "test": "./node_modules/.bin/cross-env NODE_ENV=test ./node_modules/.bin/babel-tape-runner test/test-*.js"
  },

kann als verwendet werden

if ( app.get('env') === 'development' ) {
    app.use(express.errorHandler());
}
9
iamwhitebox

Sie können erkennen, in welcher Umgebung Sie sich befinden, indem Sie app.settings.env überprüfen.

2
DHamrick

In anderen Antworten gibt es viele nützliche Empfehlungen. Ich mache es im Allgemeinen so:

const environment = process.env.NODE_ENV || 'development';

Das Gute ist, dass ein solcher Ansatz nicht spezifisch für Express per se ist, sondern eine allgemein anerkannte Praxis in einem breiteren Node.js-Ökosystem ist.

Außerdem wurde ein wiederverwendbares Modul implementiert, mit dem die Umgebung automatisch erkannt werden kann, indem sowohl CLI-Argumente als auch die Variable NODE_ENV analysiert werden. Dies kann auf Ihrem Entwicklungscomputer hilfreich sein, da Sie die Umgebung leicht ändern können, indem Sie ein CLI-Argument an Ihr Node.js-Programm wie folgt übergeben: $ node app.js --prod.

Weitere Details und Anwendungsfälle finden Sie auf der Seite detect-environment .

0
Slava Fomin II

ich kann nicht auf den NodeJS-Server zugreifen. kann Knoten env von express mit app.setting.env erkennen

  1. var app = express();
  2. app.setting.env wird in die Template-Engine gerendert.
  3. über den Browser überprüfen.
0
ZILONG PAN