В JavaScript это можно выполнить с помощью команды « окно.fetch() метод. Однако в « узел.js », эта функциональность может быть достигнута с помощью нескольких пакетов, например, выборки узла и т. д.
В этом блоге описаны следующие области контента:
- Что такое «выборка узла»?
- Предварительные условия для использования выборки узла.
- Как делать HTTP-запросы в node.js с помощью node-fetch?
- Как начать работу с выборкой узлов?
- Отправляйте запросы на получение через node-fetch.
- Получить данные JSON из Rest API.
- Публикуйте запросы через node-fetch.
- Что такое коды состояния HTTP?
- Работа с исключениями и ограничениями.
- Другие случаи использования выборки узла.
- Заключение
Что такое «выборка узла»?
« выборка узла соответствует облегченному модулю, который делает API выборки доступным для node.js. Этот модуль также позволяет пользователям использовать « принести() ” метод в node.js, который во многом похож на JavaScript “ окно.fetch() метод.
Синтаксис (метод fetch())
принести ( URL [ , параметры ] ) ;
В этом синтаксисе:
- « URL «» относится к URL-адресу ресурса, который необходимо получить/получить.
- « параметры Параметр ” необходим, когда необходимо использовать метод «fetch()», отличный от создания « ПОЛУЧАТЬ ' запрос.
Возвращаемое значение
Эта функция извлекает объект Response, содержащий информацию об ответе HTTP, следующим образом:
- текст: Получает тело ответа в виде строки.
- заголовки: Возвращает объект, содержащий обработчики ответов.
- json(): Анализирует тело ответа в объекте JSON.
- текст статуса/статус: Содержит информацию о коде состояния HTTP.
- хорошо: Дает « истинный », если статус представляет собой код состояния 2xx.
Предварительные условия для использования выборки узла
Ниже приведены предварительные условия, которые следует учитывать, прежде чем начать с « выборка узла »:
- Установлена не ниже версии 17.5 или новее.
- Базовые знания JavaScript.
Как делать HTTP-запросы в node.js с помощью node-fetch?
Выполнение HTTP-запросов является асинхронной процедурой, поскольку получение запрошенного ответа занимает некоторое время. Дело в том, что могут существовать две методологии использования асинхронных процедур. Первый из них заключается в том, что пользователь может дождаться ответа, а затем продолжить работу с кодом. Другой выполняет код параллельно.
Как начать работу с выборкой узлов?
Прежде чем начать или установить « выборка узла ” инициализируйте проект узла с помощью приведенной ниже команды:
npm инициализация - и
Выполнение этой команды создает « пакет.json ” в текущем каталоге следующим образом:
Теперь установите « выборка узла ” с помощью следующего командлета:
узел установки npm - принести
Однако для установки целевой версии модуля используйте следующую команду:
узел установки npm - принести@ 2.0В этом случае « 2.0 » версия модуля будет установлена.
Примечание: Прежде чем приступить к примерам, создайте файл « index.mjs ” в рабочей области, которая будет использоваться для применения функций.
Пример 1: Отправлять запросы на получение через node-fetch
« выборка узла Модуль можно использовать для получения текста с веб-сервера или данных через Rest API.
Приведенный ниже пример кода написан в созданном « index.mjs ” выполняет простой запрос Get на главную страницу YouTube:
Импортировать принести от 'выборка узла' ;принести ( 'https://youtube.com' )
. затем ( рез => рез. текст ( ) )
. затем ( текст => консоль. бревно ( текст ) ) ;
В этих строках кода:
- Загрузите « выборка узла » и получить домашнюю страницу YouTube по указанному URL-адресу, к которому отправляется HTTP-запрос.
- После этого соедините « затем() ” методы для обработки ответа и данных из сделанного запроса.
- Первый метод then() указывает на ожидание получения ответа от сервера YouTube и преобразования его в текстовый формат.
- Последний метод «then()» означает ожидание результата предыдущего преобразования и отображает его на консоли.
Выход
Теперь выполните код с помощью следующего командлета:
индекс узла. MJSВыполнение приведенной выше команды приводит к получению всей HTML-разметки домашней страницы YouTube, отображаемой на консоли:
Пример 2: Получить данные JSON из Rest API
В этом примере используется « выборка узла », чтобы получить поддельные данные через JSONЗаполнитель РестAPI. Это так, что « принести() ” содержит URL-адрес сервера и ожидает ответа:
Импортировать принести от 'выборка узла' ;принести ( 'https://jsonplaceholder.typicode.com/users' )
. затем ( рез => рез. JSON ( ) )
. затем ( JSON => {
консоль. бревно ( «Первый пользователь массива ->» ) ;
консоль. бревно ( JSON [ 0 ] ) ;
консоль. бревно ( «Имя пользователя первого массива ->» ) ;
консоль. бревно ( JSON [ 0 ] . имя ) ;
} )
Согласно этому блоку кода выполните следующие действия:
- Тело HTTPS содержит данные в формате JSON, содержащие данные пользователя.
- После этого « json() ” применяется для вызова отдельных записей и соответствующих значений.
Выход
Примените приведенный ниже командлет для выполнения кода:
индекс узла. MJS
Пример 3: Публикация запросов через node-fetch
« выборка узла Модуль также можно использовать для публикации запросов вместо их получения. Этого можно достичь с помощью « принести() », который включает дополнительный параметр для отправки POST-запросов на сервер.
Существует несколько опций, которые можно назначить с помощью этого параметра. Однако в данном случае « метод ', ' тело ' и ' заголовки ' будет использован. Ниже приводится описание каждого из вариантов:
- « метод Параметр «» устанавливает тип HTTP-запросов, т. е. «POST» в этом сценарии.
- « тело Опция » содержит тело запроса.
- « заголовок Опция «» содержит все необходимые заголовки, т. е. « Тип содержимого в этом сценарии.
Теперь перейдем к практической реализации отправки запросов на публикацию, добавив новый элемент в заполнитель JSON « все ». Это делается путем добавления нового элемента в список с идентификатором пользователя «476»:
Импортировать принести от 'выборка узла' ;пусть все '=' {
ID пользователя : 476 ,
сайт : «Это Linuxhint» ,
завершенный : ЛОЖЬ
} ;
принести ( 'https://jsonplaceholder.typicode.com/todos' , {
метод : 'ПОЧТА' ,
тело : JSON. строкировать ( все ) ,
заголовки : { 'Тип содержимого' : 'приложение/json' }
} ) . затем ( рез => рез. JSON ( ) )
. затем ( JSON => консоль. бревно ( JSON ) ) ;
В этом коде:
- Прежде всего, создайте объект задачи и преобразуйте его в JSON, добавляя его в тело.
- Теперь аналогичным образом укажите URL с необходимыми параметрами в виде « принести() ” необязательные параметры метода.
- После этого примените « JSON.stringify() ” для преобразования объекта в форматированную строку (JSON) перед его отправкой/передачей на веб-сервер.
- Двигаясь вперед, реализуйте комбинированный « затем() ” для получения данных путем ожидания ответа, преобразования его в JSON и входа в консоль соответственно.
Выход
Выполните приведенную ниже команду для выполнения кода:
индекс узла. MJS
Что такое коды состояния HTTP?
Прежде чем перейти к следующему примеру, убедитесь, что если ответ содержит « 3хх ” код состояния, клиенту необходимо предпринять дополнительные шаги. Аналогично, « 4хх Коды ” представляют собой неверный запрос, а коды “ 5xx Коды » соответствуют ошибкам сервера.
Примечание: « ловить() ” не может справиться с вышеописанными случаями, поскольку связь с сервером происходит в упрощенном порядке. Таким образом, эффективный подход к тому, чтобы гарантировать, что неудачные запросы возвращают ошибку, — это определить функцию, которая анализирует HTTP-статус ответа сервера.
Пример 4: Как справиться с исключениями и ограничениями
С отправленными запросами может быть несколько ограничений или исключений, например, проблемы с Интернетом», — сказал он. принести() ограничения функций и т. д. Эти исключения можно обработать, добавив « ловить() » функция:
функция анализа состояния ( Икс ) {если ( Икс. хорошо ) {
возвращаться Икс
} еще {
бросать новый Ошибка ( `Состояние HTTP относительно ответа -> $ { Икс. положение дел } ( $ { Икс. статустекст } ) ` ) ;
}
}
принести ( 'https://jsonplaceholder.typicode.com/MissingResource' )
. затем ( анализироватьстатус )
. затем ( Икс => Икс. JSON ( ) )
. затем ( JSON => консоль. бревно ( JSON ) )
. ловить ( ошибаться => консоль. бревно ( ошибаться ) ) ;
В этом фрагменте кода:
- Во-первых, определите функцию, имеющую указанный параметр, прежде чем анализировать ответ, чтобы справиться с возникшими ограничениями.
- Теперь добавьте « если еще ” для выдачи обнаруженной ошибки или пользовательского ограничения.
- После этого аналогично примените « принести() » и связанные с ним методы «then()» для получения данных путем ожидания ответа, преобразования его в JSON и входа в консоль.
- Наконец, исключения во время выполнения можно устранить, поместив параметр « ловить() ” в конце цепочки обещаний.
Выход
Наконец, запустите приведенный ниже командлет, чтобы запустить код и вызвать возникающие исключения:
индекс узла. MJS
Другие случаи использования «выборки узла»
« выборка узла » также можно использовать для создания « API-запросы ' или ' Веб-скрапинг ». Давайте обсудим эти варианты использования подробно.
Использование выборки узла для выполнения запросов API
API может потребоваться в нескольких сценариях для получения целевых данных через внутренний источник. HTTP-запросы могут иметь множество методов аутентификации, например использование ключа API, когда поставщик API предоставляет ключ, доступный только пользователю. Другой подход к защите API может заключаться в следующем: « Базовая аутентификация », в котором необходимо отправить заголовок для вызова API.
Ниже приводится демонстрация последнего подхода, то есть «Базовой аутентификации» в почтовом запросе с помощью « принести() » метод:
( асинхронный ( ) => {константа Икс '=' ожидайте получения ( 'http://httpbin.org/post' , {
метод : 'ПОЧТА' ,
заголовки : {
«Авторизация» : `Базовый $ { братан ( 'логин Пароль' ) } `
} ,
тело : JSON. строкировать ( {
'ключ' : 'ценить'
} )
} ) ;
константа результат '=' жду х. текст ( ) ;
консоль. бревно ( результат ) ;
} ) ( ) ;
В приведенной выше демонстрации заголовок отправляется с « база64 ” закодированная строка формата “ логин Пароль ».
Использование выборки узлов для веб-скрапинга
« Веб-скрапинг «» относится к методу, при котором данные/контент извлекаются с сайтов и анализируются. Этот анализ достигается с помощью « приветствие » библиотека.
Ниже приведена демонстрация получения заголовка страницы с помощью команды « принести() «метод и» приветствие » библиотека:
константа библиотека '=' требовать ( 'радость' ) ;( асинхронный ( ) => {
константа Икс '=' ожидайте получения ( 'https://linuxhint.com/' ) ;
константа и '=' жду х. текст ( ) ;
константа $ '=' либ. нагрузка ( и ) ;
консоль. бревно ( $ ( 'заголовок' ) . первый ( ) . текст ( ) ) ;
} ) ( ) ;
В этом примере извлекается плитка « Линукс » название сайта.
Заключение
HTTP-запросы в node.js могут выполняться с помощью node-fetch, отправляя запросы на получение, получая данные JSON из REST API или отправляя почтовые запросы. Кроме того, исключения и ограничения можно эффективно обрабатывать с помощью « ловить() » функция.