web-dev-qa-db-fra.com

NodeJS accédant au fichier avec le chemin relatif

Cela semblait être un problème simple. Mais je ne suis pas capable de casser ça. Dans helper1.js, je souhaite accéder à foobar.json (à partir de config/dev/)

root
  -config
   --dev
    ---foobar.json
  -helpers
   --helper1.js

Je ne pouvais pas faire fonctionner cela fs: comment localiser un dossier parent?

Toute aide serait la bienvenue.

55
lonelymo

Vous pouvez utiliser le module path pour joindre le chemin du répertoire dans lequel helper1.js habite le chemin relatif de foobar.json. Cela vous donnera le chemin absolu vers foobar.json.

var fs = require('fs');
var path = require('path');

var jsonPath = path.join(__dirname, '..', 'config', 'dev', 'foobar.json');
var jsonString = fs.readFileSync(jsonPath, 'utf8');

Cela devrait fonctionner sous Linux, OSX et Windows en supposant un codage UTF8.

127
AerandiR

Facile! Le dossier nommé .. est le dossier parent. Vous pouvez ainsi définir le chemin d'accès au fichier dont vous avez besoin.

var foobar = require('../config/dev/foobar.json');

Si vous aviez besoin de monter de deux niveaux, vous écririez ../../ etc

Quelques détails supplémentaires à ce sujet dans this SO answer et ses commentaires.

10
AdityaParab