web-dev-qa-db-fra.com

Node.js forever avec variable d'environnement

La commande que j'exécute sur mon serveur pour démarrer mon application de nœud est:

Sudo IS_PROD=1 node app.js

J'ai toujours installé mais ne semble pas passer dans la variable d'environnement.

Sudo IS_PROD=1 forever node app.js

Ne semble pas faire l'affaire. J'en ai essayé plusieurs variétés. Comment puis-je exécuter cette commande avec succès ou définir définitivement la variable d'environnement?

38
user1168427

Tout d'abord, vous devez ignorer la chose node dans votre commande, elle ne devrait pas être là, vous ne devriez pas pouvoir l'exécuter. forever démarre automatiquement votre script en utilisant nodejs . Au lieu de cela, vous devriez faire comme ça;

Sudo IS_PROD=1 forever app.js

Au lieu de démarrer votre serveur au premier plan, vous voudrez probablement démarrer votre serveur en tant que démon. par exemple.

Sudo IS_PROD=1 forever start app.js

Cela créera un processus en arrière-plan qui surveillera votre application de nœud et la redémarrera à sa fermeture. Pour plus d'informations, consultez le readme .

Ces deux méthodes préservent les variables d'environnement, tout comme lorsque vous utilisez simplement node.

88
Mattias

app.js:

console.log(process.env.IS_PROD);

Utilisation de node (v0.8.21)

$ node app.js
undefined

$ IS_PROD=1 node app.js
1

$ Sudo IS_PROD=1 node app.js
1

Utilisation de forever (v0.10.0)

$ forever app.js
undefined

$ IS_PROD=1 forever app.js
1

$ Sudo IS_PROD=1 forever app.js
1

Documentation :

process.env

Un objet contenant l'environnement utilisateur. Voir environ (7).

15
mak