Рубрики
Без рубрики

Node.js module.exports vs. Экспорт

Lazlojuly, что они, как их использовать и как их использовать (обратите внимание, что эта статья была написана после выпуска Node.js 6.1.0) TL; DRTHink of Module.exports в качестве переменной, которая возвращается из требуемого () Отказ По умолчанию это пустой объект, а также

Лазловеюлы

Что они, как их использовать и как их не использовать

(Обратите внимание, что эта статья была написана после выпуска Node.js 6.1.0)

TL; доктор

  • Подумайте о Module.exports в качестве переменной, которая возвращается из требуемого (). Это пустой объект по умолчанию, и это нормально, чтобы изменить на что угодно.
  • Экспорт? Ну, сам “экспорт” никогда не возвращается! Это просто ссылка на модуль. Экспорты; Удобная переменная, чтобы помочь модулю авторов писать меньше кода. Работа со своими свойствами безопасна и рекомендуется.
exports.method = function() {…} 
vs.
module.exports.method = function() {…}

Простой пример модуля

Во-первых, нам нужен пример кодовой базы. Начнем с простого калькулятора:

Использование:

Модуль обертки

Node.js внутренние обертывания Все требуют () – ED модули в функциональной обертке:

Объект модуля

Переменная « Модуль » – это объект, представляющий текущий модуль. Это это локальный для каждого модуля И это также частное (доступно только из кода модуля):

Module.exports.

  • Это ссылка на объект, которая возвращается из требуемых () вызовов.
  • Он автоматически создается Node.js.
  • Это просто ссылка на простой объект JavaScript.
  • Это также пустое по умолчанию (наш код придает ему метод «Add ()»)

Есть два способа, которые мы можем использовать Module.exports:

  1. Прикрепление общественных методов К нему (как мы сделали в примере калькулятора).
  2. Замена Это с нашим пользовательским объектом или функцией.

Зачем заменить это? При замене мы можем вернуть любой произвольный экземпляр некоторых других класс. Вот пример, написанный в ES2015:

Выше «калькулятор-база» экспортирует класс. Давайте расширим «калькулятор» класса и экспортируйте экземпляр на этот раз:

Использование:

Экспорт псевдонимов

  • «Экспорт» – это просто удобная переменная, поэтому модуль авторы могут написать меньше кода
  • Работа со своими свойствами безопасна и рекомендуется. (например.:…)
  • Экспорт не возвращается требованием () (module.exports есть!)

Вот некоторые хорошие и некоторые плохие примеры:

Примечание: Это обычная практика для замены модуля. Экспортировки с пользовательскими функциями или объектами. Если мы сделаем это, но все еще хотели бы продолжать использование «экспорта» сокращения; Тогда «экспорт» должен быть переопределен на наш новый пользовательский объект (также сделано в коде выше в строке 12):

exports = module.exports = {}
exports.method = function() {...}

Заключение

Переменная по имени Экспорт Это не совсем экспортируется, сбивает с толку, особенно для новичков в Node.js. Даже официальная документация имеет чуть странный на нем:

Мой взять тот код не волшебный. Разработчики всегда должны стремиться добиваться более глубокого понимания платформ и языков, которые они используют. Тем самым; Программисты получают ценную уверенность и знание, которое, в свою очередь, положительно влияет на качество кода, архитектуру системы и производительность.

Спасибо за чтение моего поста. Обратная связь и мысли всегда приветствуются в разделе комментариев.

Lazlojuly

Статьи по Теме:

Источники:

Оформить заказ мой новый блог в тестировании единиц блока:

Как начать с тестирования подразделения? Часть № 1. Я думаю, что многие из нас могут относиться к ситуации, изображенной выше. Место, где тестирование подразделения считается рутией. medium.com

Оригинал: “https://www.freecodecamp.org/news/node-js-module-exports-vs-exports-ec7e254d63ac/”