Как устранить ошибку «Требуется эталонная ошибка не определена»?

Kak Ustranit Osibku Trebuetsa Etalonnaa Osibka Ne Opredelena



Node.js сам по себе ничего не значит, его существование зависит от модулей и методов, предоставляемых каждым модулем. Для работы с этими модулями разработчик должен сначала установить их, а затем импортировать внутрь текущего рабочего файла. Для импорта модулей существует два способа, которые конкретно связаны с версией JavaScript, которую сейчас использует разработчик или на которой владелец приложения хочет построить. При импорте существует вероятность столкнуться с множеством ошибок, а также с одной популярной и наиболее распространенной ошибкой, связанной с « требовать() Метод описывается и решается.

В этом руководстве объясняется процедура устранения ошибок «ReferenceError: требование не определено».

Как устранить ошибку «ReferenceError: требование не определено»?

Для импорта внешних или встроенных модулей в проект используются два подхода: « требовать() ” метод или “ Импортировать ключевое слово. Упомянутое « ReferenceError: требование не определено сталкивается, когда пользователь пытается использовать « требовать() ” метод внутри “ ES-модуль ' объем. Обсуждаемая ошибка появляется на консоли в node.js, когда выполняется приведенный ниже код:









Причины возникновения ошибки «Устранить ошибку ReferenceError: требование не определено» и соответствующие решения описаны в разделах ниже.



Причина 1. Тип приложения установлен на «Модуль».

Если ваше приложение отображает упомянутую ошибку, самым простым и долгосрочным решением является изменение файла « пакет.json ' файл. Найдите пару ключ/значение, имеющую « ключ ' из ' тип » и присвоенное значение « модуль ». Это делает среду всего приложения модульной, что предотвращает использование старых « CommonJS » модули и методы. Визуальное представление этой пары ключ/значение выглядит следующим образом:





'тип' : 'модуль' ,

Решение: удалите ключ «Тип».

Решение — удаление « тип «ключ и присвоенное значение из проекта node.js» пакет.json ' файл. Удаление из файла package.json использует область действия модуля ES6 и делает метод require() работоспособным. Теперь, когда тот же код будет выполнен снова, ошибок не возникнет.



Причина 2: Работа в формате «.mjs» » Файл

« .mjs ” — это файл исходного кода модуля JavaScript. Он содержит код внутри среды модуля, а не в « CommonJS », который разбивает код на несколько файлов для лучшей управляемости. « требовать() метод лежит в разделе « CommonJS ». Вот почему метод «require» станет неопределенным при использовании внутри « .mjs ” и приводит к возникновению упомянутой ошибки:

Решение: преобразуйте расширение файла в «.cjs».

Как и в случае с модульным исходным кодом JavaScript, расширение файла « .mjs ' доступен. Продление « .cjs предусмотрено для « CommonJS » модули и свойства. Этот файл не принимает « модульный ” пакеты типа “ Импортировать », но хорошо работает с версиями ES5. В нашем случае изменение расширения файла решит проблему, связанную с « требовать() » метод:

Альтернативный подход: используйте заявление ES6 «импорт/экспорт».

« требовать() метод определен и предоставляется методом « CommonJs » и приемлемо до версии ES5 на JavaScript (ECMAScript 5). Он был опубликован в 2009 году и сейчас устарел, поскольку многие новейшие модули не поддерживают его или не работают должным образом в ES5. Точно так же, как « требовать() метод теперь заменяется более оптимизированным и простым « Импортировать ' заявления. Работа обоих объектов одинакова, но «импорт» имеет преимущество благодаря новейшим технологиям и большей простоте, которые они обеспечивают.

Для стандартных или внешних модулей

В приведенной ниже демонстрации оператор «import» используется в качестве альтернативы методу «require()» для импорта модуля по умолчанию или стороннего модуля:

Импортировать readlineObj от 'линия чтения' ;

консоль. бревно ( readlineObj ) ;

После компиляции упомянутого кода та же задача, которую необходимо выполнить « требовать() выполняется метод и метод « ReferenceError: требование не определено » также не появится:

Для модулей, созданных по индивидуальному заказу

« Импортировать Оператор » также используется для «импорта» модулей или функций специальной сборки из других файлов, находящихся в том же или разных каталогах. Функции или переменные из других файлов экспортируются с помощью команды « экспорт ключевое слово. Например, посетите приведенный ниже фрагмент кода, в котором одна функция и случайная величина будут импортированы из другого файла:

приложение.js

константа экспортная переменная '=' «Это руководство предоставлено Linuxhint!» ;

константа экспортфункция '=' ( ) => {

консоль. бревно ( экспортная переменная ) ;

} ;

экспорт по умолчанию экспортфункция ;

экспорт {

экспортная переменная

} ;

Объяснение приведенного выше блока кода следующее:

  • Во-первых, случайная величина с именем « экспортная переменная ” определена, а стрелочная функция “ экспортфункция() », который печатает созданную «exportVariable» на консоли.
  • Ключевые слова « экспорт по умолчанию ' и ' экспорт ” используются для экспорта “ экспортфункция() ' и ' экспортная переменная » объекты из файла.
  • Когда этот файл импортируется, экспортированная функция и переменные становятся доступными для использования там.

index.js

«index.js» — это наш дополнительный файл, в который будут импортированы и использоваться экспортированные функция и переменная. Он содержит приведенный ниже код:

Импортировать экспортная функция, { экспортная переменная } от './app.js' ;

экспортфункция ( ) ;

консоль. бревно ( экспортная переменная ) ;

В приведенном выше коде « Импортировать Оператор ” используется для импорта стандартного “ экспортфункция() » и переменная « экспортная переменная ' из ' приложение.js ' файл.

Затем оба импортированных объекта вызываются и отображаются на консоли в целях проверки.

Теперь выполните основной « index.js » файл, используя указанную ниже команду:

индекс узла. js

Сгенерированные выходные данные показывают, что импортированные элементы работают правильно, не вызывая « ReferenceError: требование не определено ' ошибка:

Вот и все, что касается устранения указанной ошибки.

Заключение

Чтобы решить проблему « ReferenceError: требование не определено » ошибка, удалите « тип ” ключ, имеющий значение “ модуль ' из ' пакет.json » или измените текущее рабочее расширение файла на « .cjs ». Если вы хотите работать с модульной версией ES6, вместо использования « требовать() ” используйте метод “ Импортировать » заявления подхода. В этом руководстве объяснены возможные исправления для решения проблемы « ReferenceError: требование не определено «ошибка» в node.js