29

In a Node.js module I would like to open a file--i.e, with fs.readFile()--that is contained in the same directory as my module. By which I mean it is in the same directory as the ./node_modules/<module_name>/index.js file.

It looks like all relative path operations which are performed by the fs module take place relative to the directory in which Node.js is started. As such, I think I need to know how to get the path of the current Node.js module which is executing.

Thanks.

Afshin Mehrabani
  • 33,262
  • 29
  • 136
  • 201
Chris W.
  • 37,583
  • 36
  • 99
  • 136

1 Answers1

52

As david van brink mentioned in the comments, the correct solution is to use __dirname. This global variable will return the path of the currently executing script (i.e. you might need to use ../ to reach the root of your module).

For example:

var path = require("path");
require(path.join(__dirname, '/models'));

Just to save someone from a headache.

Asaf
  • 770
  • 6
  • 15
Afshin Mehrabani
  • 33,262
  • 29
  • 136
  • 201