В последнее время я использую Nodejs почти для всех своих проектов, одну из самых популярных серверных технологий, доступных сегодня. После нескольких проектов с Nodejs я вскоре понял, что у большинства разработчиков, таких как я, возникают проблемы с определением тонкой разницы между двумя глобальными объектами узла, таким образом, __dirname и process.cwd().


Что такое NodeJS?

Node.js — это среда выполнения JavaScript с открытым исходным кодом, созданная на основе движка Chrome V8. Традиционный JavaScript выполняется в браузерах, но с Node.js мы можем выполнять JavaScript на серверах, аппаратных устройствах и т. д.

Теперь давайте посмотрим, что это за глобальные переменные и чем они отличаются в своей работе.


__адрес:

Это локальная переменная, которая возвращает имя каталога текущего модуля. Он возвращает расположение папки текущего файла JavaScript.


процесс.cwd():

В Node.js есть глобальный объект, называемый глобальным, и объект процесса находится внутри глобального объекта.
process.cwd() дает имя каталога, из которого обслуживается приложение NodeJS. Другими словами, рабочий каталог процесса NodeJS.


Практические демонстрации

  1. В приложении node у меня есть App.js в качестве файла входа в корневом каталоге.
    app.js

Пример 1

Запустите app.js на терминале

node app.js
Войти в полноэкранный режим

Выйти из полноэкранного режима

ВЫХОД

======== process.cwd()=========
C:\Users\qbentil\blog6
======== __dirname=========
C:\Users\qbentil\blog6
Войти в полноэкранный режим

Выйти из полноэкранного режима

  1. Создайте следующую структуру проекта

Структура

фрагмент кода в try/try.js

попробуйте фрагмент

фрагмент кода для app.js

фрагмент кода app.js

run node app.js
Войти в полноэкранный режим

Выйти из полноэкранного режима

ВЫХОД

======== process.cwd() from /try/try.js=========
C:\Users\User\Desktop\blog6
======== __dirname from /try/try.js=========
c:\Users\User\Desktop\blog6\try
PS C:\Users\User\Desktop\blog6> 
Войти в полноэкранный режим

Выйти из полноэкранного режима

Приведенный выше вывод показывает, что каталог файла try.js находится в папке blog6/try, тогда как текущий процесс узла выполняется в папке blog6/.


Вывод

Несмотря на вышеуказанные переменные области видимости, важно отметить следующие различия, чтобы знать, какую переменную вызывать в любой момент приложения.


Разница между __dirname и process.cwd()

__имя_каталогапроцесс.cwd()
Он возвращает имя каталога, содержащего файл исходного кода.Он возвращает имя текущего рабочего каталога, из которого обслуживается процесс NodeJS.
Это зависит от текущего каталога.Это зависит от вызывающей команды узла.
Он является локальным для каждого модуля.Это глобальный объект узла.

Как разработчику NodeJS, очень важно знать, как использовать эти переменные, поскольку иногда это может сбивать с толку и вызывать ненужные ошибки в вашем приложении.

Удачного взлома!

Бентил здесь🚀
Если вам нравится мой контент, вы можете поддержать меня здесь, чтобы продолжить работу.👇

купи мне кофе

Дайте мне знать ваши вопросы или предложения в поле для комментариев ниже