В Node.js, как я могу определить путь к этому модулю?
В модуле Node.js, который я пишу, я хотел бы открыть файл - i.e, с fs.readFile()
- который содержится в том же каталоге, что и мой модуль. Под этим я подразумеваю, что он находится в том же каталоге, что и файл ./node_modules/<module_name>/index.js
.
Похоже, что все операции относительного пути, выполняемые модулем fs
, происходят относительно каталога, в котором запускается Node.js. Как таковой, я думаю, мне нужно знать, как получить путь к текущему исполняемому модулю Node.js.
Спасибо.
Ответы
Ответ 1
Как упоминает в комментариях Дэвид ван Бринк, правильным решением является использование __dirname
. Эта глобальная переменная вернет путь к выполняемому в настоящее время script (т.е. Вам может понадобиться использовать ../
для доступа к корню вашего модуля).
Например:
var path = require("path");
require(path.join(__dirname, '/models'));
Просто чтобы спасти кого-то от головной боли.