Использование узла REPL для записи значения __dirname - PullRequest
0 голосов
/ 02 мая 2018

Если я напишу скрипт, содержащий console.log(__dirname);, то записывается значение __dirname. Но если я попробую то же самое для узла REPL, как это произойдет:

 > console.log(__dirname)
 ReferenceError: __dirname is not defined

Мысли

1 Ответ

0 голосов
/ 02 мая 2018

От этого В чем разница между __dirname и ./ в node.js? , записанного d512

В Node.js, __dirname - это всегда каталог, в котором находится исполняемый в данный момент скрипт (см. Это). Поэтому, если вы ввели __dirname в /d1/d2/myscript.js, значение будет /d1/d2.

В документации сказано, что __dirname равно path.dirname. Если вы введете path.dirname в отталкиватель, он скажет вам следующее:

> console.log(path.dirname)
[Function: dirname]
undefined

Теперь я думаю: поскольку это репл, у вас нет файла, который хранится где-то на диске. Он просто читает команду, оценивает ее и выводит на консоль.

Кто-то с большим опытом в REPLS может дать более длинный и подробный ответ, но я думаю, что это изложило концепцию.

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