В Node.js как я могу указать путь к модулю `this`? - PullRequest
23 голосов
/ 07 марта 2011

В модуле Node.js, который я пишу, я хотел бы открыть файл - т.е. с fs.readFile() - который содержится в том же каталоге, что и мой модуль. Под этим я подразумеваю, что он находится в том же каталоге, что и файл ./node_modules/<module_name>/index.js.

Похоже, что все операции относительного пути, выполняемые модулем fs, выполняются относительно каталога, в котором запущен Node.js. Поэтому я думаю, что мне нужно знать, как получить путь к текущему модулю Node.js, который выполняется.

Спасибо.

1 Ответ

43 голосов
/ 05 февраля 2013

Как отметил Дэвид ван Бринк в комментариях, правильное решение - использовать __dirname. Эта глобальная переменная возвращает путь к исполняемому в данный момент скрипту (т. Е. Вам может понадобиться использовать ../ для доступа к корню вашего модуля).

Например:

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

Просто чтобы спасти кого-то от головной боли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...