17 votes

node.js require à partir du dossier parent

J'ai la structure suivante :

-- node_modules
-- websites
---- common
------- config.js
---- testing
------- test.js

Dans la configuration, j'ai défini quelques variables, qui sont exportées à l'aide de module.export.

J'essaie de récupérer ces variables en exécutant node test.js de config.js en utilisant les codes suivants :

var configData = require('./common/config.js')
var configData = require('../common/config.js')

Aucun d'entre eux ne fonctionne. Que puis-je faire pour récupérer les données de l'autre dossier ?

29voto

ibrahim mahrir Points 22237
var configData = require('./../common/config.js');
  1. ./ est testing/

  2. ./../ est websites/

  3. ./../common/ est websites/common/

  4. ./../common/config.js est websites/common/config.js

6voto

Dario Points 2294

De test.js :

const configData = require('../common/config');

Vous pouvez sans risque omettre '.js' .

Comme documentation dites :

Modules de fichiers

Si le nom de fichier exact n'est pas trouvé, alors Node.js tentera de charger le nom de fichier requis avec les extensions ajoutées : .js, .json, et enfin .node.

Les fichiers .js sont interprétés comme des fichiers texte JavaScript. et les fichiers .json sont interprétés comme des fichiers texte JSON. Les fichiers .node sont interprétés comme des modules compilés modules complémentaires chargés avec dlopen.

Un module requis préfixé par '/' est un chemin absolu vers le fichier. Par exemple, require('/home/marco/foo.js') chargera le fichier à l'adresse suivante /home/marco/foo.js.

Un module requis préfixé par './' est relatif au fichier qui appelle l require() . C'est-à-dire que circle.js doit être dans le même répertoire que foo.js pour que require('./circle') le trouve.

Si un fichier n'est pas précédé d'un '/', d'un './' ou d'un './', le module doit être un module de base ou être chargé à partir d'un dossier node_modules. .

Si le chemin donné n'existe pas, require() lancera une Erreur avec avec le code 'MODULE_NOT_FOUND'.

Plus d'informations sur la façon dont require() travail ici .

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