388 votes

Node.JS: Détecter si elle est appelée par besoin ou directement en ligne de commande

Comment puis-je détecter si mon Node.JS le fichier a été appelée à l'aide de SH:node path-to-file ou JS:require('path-to-file')?

C'est le Node.JS équivalent à ma question précédente en Perl: Comment puis-je faire fonctionner mon script Perl que si elle n'était pas chargée avec besoin?

623voto

nicolaskruchten Points 6130
if(require.main === module) 
   { console.log("called directly"); }
else
   { console.log("required as a module"); }

Voir la documentation de ce sujet ici: http://nodejs.org/docs/latest/api/all.html#all_accessing_the_main_module

108voto

Thorsten Lorenz Points 4419

Il est un autre, légèrement plus court chemin (qui ne sont pas décrits dans ces documents).

var runningAsScript = !module.parent;

Je l'ai souligné plus de détails sur la façon dont tout cela fonctionne sous le capot de ce blog.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X