Использование узла REPL для записи значения __dirname
Если я напишу скрипт, содержащий console.log(__dirname);
записывает значение __dirname
, Но если я попробую то же самое для узла REPL, как это произойдет:
> console.log(__dirname)
ReferenceError: __dirname is not defined
Мысли?
1 ответ
От этого В чем разница между __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 мог бы дать более длинный и подробный ответ, но я думаю, что это изложило концепцию.