NodeJS accessing file with relative path

lonelymo picture lonelymo · Sep 22, 2015 · Viewed 113.5k times · Source

It seemed like a straight forward problem. But I amn't able to crack this. Within helper1.js I would like to access foobar.json (from config/dev/)

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

I couldn't get this to work fs: how do I locate a parent folder?

Any help here would be great.

Answer

AerandiR picture AerandiR · Sep 22, 2015

You can use the path module to join the path of the directory in which helper1.js lives to the relative path of foobar.json. This will give you the absolute path to 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');

This should work on Linux, OSX, and Windows assuming a UTF8 encoding.