App chemin d'accès de base à partir d'un module NodeJS
Je suis en train de construire une application web en NodeJS, et je me suis mise en œuvre de mon API routes dans des modules séparés. Dans un de mes routes je fais une manipulation de fichiers et j'ai besoin de savoir la base, le chemin de app. si j'utilise __dirname
il me donne le répertoire qui contient mon module de cours.
Je suis en train de l'utiliser pour obtenir la base de chemin de app (étant donné que je sais que le chemin relatif vers le module de chemin d'accès de base):
path.join(__dirname, "../../", myfilename)
Est-il un meilleur moyen que d'utiliser ../../
? Je suis Nœud en cours d'exécution sous Windows donc il n'y a pas de process.env.PWD
et je ne veux pas être spécifique à une plateforme de toute façon.
Paths.getBasePath();
) dans ce cas. Vous aurez seulement besoin de mettre à jour le chemin d'accès relatif à la fonction mentionnée ci-dessus lors de votre projet de modification de la structure. Avec une approche de ce genre, vous pouvez utiliser require('./Paths').getBasePath();
n'importe où, sans la nécessité d'utiliser ../../
de nouveau.OriginalL'auteur Clint Powell | 2014-02-07
Vous devez vous connecter pour publier un commentaire.
L'approche de l'utilisation des
__dirname
est le plus fiable. Il vous donnera toujours bon répertoire. Vous n'avez pas à vous soucier de../../
dans l'environnement de Windows commepath.join()
prendra soin de cela.Il y a une solution alternative. Vous pouvez utiliser
processus.mdc()
qui renvoie le répertoire de travail courant du processus. Cette commande fonctionne très bien si vous exécutez votre nœud de l'application à partir de la base de répertoire de l'application. Toutefois, si vous exécutez votre nœud de l'application de répertoire différent, disons, son répertoire parent (par exemple,node yourapp\index.js)
puis__dirname
mécanisme fonctionnera beaucoup mieux.J'espère que cela va aider.
process.cwd()
fonctionne très bien avec l'application qui s'exécute sur l'app chemin d'accès de base. Merci! Le../../
fonctionne, mais il se sent plus à l'bidouillé.OriginalL'auteur Tom
Vous pouvez utiliser chemin d'accès.resolve() sans arguments pour obtenir le répertoire de travail qui est généralement la base de chemin de app. Si l'argument est le chemin d'accès relatif, alors il est considéré comme relatif au répertoire de travail courant de sorte que vous pouvez écrire
besoin de votre module à la racine d'application.
OriginalL'auteur Samuli Asmala