Em JavaScript, isso pode ser realizado através do “ janela.fetch() ”Método. No entanto, em “ nó.js ”, esta funcionalidade pode ser alcançada usando vários pacotes, ou seja, node-fetch, etc.
Este blog explica as seguintes áreas de conteúdo:
- O que é “busca de nó”?
- Pré-requisitos para usar a busca de nó.
- Como fazer solicitações HTTP em node.js com node-fetch?
- Como começar a buscar node?
- Envie solicitações Get por meio de busca de nó.
- Recuperar dados JSON da API Rest.
- Postar solicitações por meio de busca de nó.
- Quais são os códigos de status HTTP?
- Lidando com exceções e limitações.
- Outros casos de uso de busca de nó.
- Conclusão
O que é “busca de nó”?
O ' busca de nó ”corresponde a um módulo leve que torna a API fetch acessível para node.js. Este módulo também permite que os usuários utilizem o “ buscar() ”Método em node.js que é muito semelhante ao JavaScript“ janela.fetch() ”Método.
Sintaxe (método fetch())
buscar ( url [ , opções ] ) ;
Nesta sintaxe:
- “ url ”refere-se ao URL do recurso que precisa ser buscado/recuperado.
- O ' opções ”O parâmetro é necessário quando há necessidade de usar o método “fetch()” diferente de fazer um “ PEGAR ' solicitar.
Valor de retorno
Esta função recupera um objeto Response que contém informações sobre uma resposta HTTP da seguinte forma:
- texto: Recupera o corpo da resposta na forma de uma string.
- cabeçalhos: Retorna um objeto que compreende os manipuladores de resposta.
- json(): Analisa o corpo da resposta em um objeto JSON.
- texto de status/status: Compreende as informações referentes ao código de status HTTP.
- OK: Dá “ verdadeiro ” se o status for um código de status 2xx.
Pré-requisitos para usar a busca de nó
A seguir estão os pré-requisitos a serem considerados antes de começar com “ busca de nó ”:
- Instalado pelo menos ou mais recente que a versão 17.5.
- Conhecimento básico de JavaScript.
Como fazer solicitações HTTP em node.js com node-fetch?
Fazer as solicitações HTTP é um procedimento assíncrono, pois o recebimento da resposta solicitada leva algum tempo. É tal que pode haver duas metodologias para utilização dos procedimentos assíncronos. A primeira é que o usuário pode aguardar a resposta e depois continuar com o código. O outro está executando o código em paralelo.
Como começar a buscar node?
Antes de iniciar ou instalar o “ busca de nó ”Módulo, inicialize um projeto de nó com a ajuda do comando fornecido abaixo:
inicialização npm - e
A execução deste comando cria um “ pacote.json ”Arquivo no diretório atual, como segue:
Agora, instale o “ busca de nó ”módulo usando o seguinte cmdlet:
nó de instalação npm - buscar
No entanto, para instalar uma versão do módulo de destino, utilize o seguinte comando:
nó de instalação npm - buscar@ 2,0Neste caso, o “ 2,0 ”A versão do módulo será instalada.
Observação: Antes de prosseguir com os exemplos, crie um “ índice.mjs ”Arquivo no espaço de trabalho que será utilizado para aplicar as funcionalidades.
Exemplo 1: Enviar solicitações Get por meio de busca de nó
O ' busca de nó ”O módulo pode ser utilizado para obter texto de um servidor web ou dados via Rest API.
O exemplo de código abaixo escrito no criado “ índice.mjs ” faz uma solicitação Get simples para a página inicial do YouTube:
importar buscar de 'busca de nó' ;buscar ( 'https://youtube.com' )
. então ( resolução => res. texto ( ) )
. então ( texto => console. registro ( texto ) ) ;
Nestas linhas de código:
- Carregue o “ busca de nó ”E recupere a página inicial do YouTube por meio do URL especificado para o qual a solicitação HTTP é feita.
- Depois disso, encadeie o “ então() ”Métodos para tratar a resposta e os dados da solicitação feita.
- O antigo método “then()” indica esperar para obter a resposta do servidor do YouTube e transformá-la em formato de texto.
- O último método “then()” significa a espera pelo resultado da transformação anterior e o exibe no console.
Saída
Agora, execute o código através do seguinte cmdlet:
índice do nó. mjsA execução do comando acima resulta na recuperação de toda a marcação HTML da página inicial do YouTube exibida no console:
Exemplo 2: Recuperar dados JSON da API Rest
Este exemplo usa “ busca de nó ”para obter dados falsos através do JSONPlaceholder RestAPI. É tal que o “ buscar() ”O método compreende a URL do servidor e aguarda uma resposta:
importar buscar de 'busca de nó' ;buscar ( 'https://jsonplaceholder.typicode.com/users' )
. então ( resolução => res. JSON ( ) )
. então ( JSON => {
console. registro ( 'Primeiro usuário do array ->' ) ;
console. registro ( JSON [ 0 ] ) ;
console. registro ( 'Nome de usuário do primeiro array ->' ) ;
console. registro ( JSON [ 0 ] . nome ) ;
} )
De acordo com este bloco de código, execute as seguintes etapas:
- O corpo HTTPS compreende dados formatados em JSON contendo os dados do usuário.
- Depois disso, o “ json() ”A função é aplicada para invocar as entradas individuais e os valores correspondentes.
Saída
Aplique o cmdlet indicado abaixo para executar o código:
índice do nó. mjs
Exemplo 3: Solicitações de postagem via busca de nó
O ' busca de nó ”O módulo também pode ser usado para postar as solicitações em vez de recuperá-las. Isto pode ser alcançado através do “ buscar() ”Método que inclui um parâmetro adicional para fazer solicitações POST a um servidor.
Existem múltiplas opções que podem ser alocadas com este parâmetro. Porém, neste caso, o “ método ',' corpo ' e ' cabeçalhos ' será usado. A seguir está a descrição de cada uma das opções:
- O ' método ”A opção define o tipo de solicitações HTTP, ou seja, “POST” neste cenário.
- O ' corpo ”A opção compreende o corpo da solicitação.
- O ' cabeçalho ”A opção contém todos os cabeçalhos necessários, ou seja,“ Tipo de conteúdo ' Neste cenário.
Agora, prossiga para a implementação prática do envio de solicitações de postagem, anexando um novo item ao espaço reservado JSON “ todos ”. Isso é feito anexando um novo item à lista tendo o userID como “476”:
importar buscar de 'busca de nó' ;deixe tudo = {
ID do usuário : 476 ,
site : 'Isso é Linuxhint' ,
concluído : falso
} ;
buscar ( 'https://jsonplaceholder.typicode.com/todos' , {
método : 'PUBLICAR' ,
corpo : JSON. restringir ( todos ) ,
cabeçalhos : { 'Tipo de conteúdo' : 'aplicativo/json' }
} ) . então ( resolução => res. JSON ( ) )
. então ( JSON => console. registro ( JSON ) ) ;
Neste código:
- Primeiro de tudo, crie um objeto todo e transforme-o em JSON enquanto o anexa ao corpo.
- Agora, da mesma forma, especifique o URL com as opções necessárias como “ buscar() ”Parâmetros opcionais do método.
- Depois disso, aplique o “ JSON.stringify() ”Método para transformar o objeto em uma string formatada (JSON) antes de enviá-lo/transmiti-lo para o servidor web.
- Seguindo em frente, implemente o “ então() ”Métodos para recuperar os dados aguardando a resposta, transformando-os em JSON e registrando no console, respectivamente.
Saída
Execute o comando fornecido abaixo para executar o código:
índice do nó. mjs
Quais são os códigos de status HTTP?
Antes de prosseguir para o próximo exemplo, certifique-se de que se a resposta compreender um “ 3xx ”Código de status, as etapas extras precisam ser executadas pelo cliente. Da mesma forma, o “ 4xx ”Os códigos representam uma solicitação inválida e os“ 5xx ”Os códigos correspondem aos erros do servidor.
Observação: O ' pegar() ”A função não consegue lidar com os casos discutidos acima, uma vez que a comunicação do servidor ocorre de maneira simplificada. Portanto, uma abordagem eficaz para garantir que as solicitações com falha retornem o erro é definir uma função que analise o status HTTP da resposta do servidor.
Exemplo 4: Lidando com exceções e limitações
Pode haver várias limitações ou exceções nas solicitações enviadas, ou seja, problemas com a Internet, “ buscar() ”limitações de função, etc. Essas exceções podem ser tratadas anexando o“ pegar() ”função:
função analisarStatus ( x ) {se ( x. OK ) {
retornar x
} outro {
lançar novo Erro ( `Status HTTP em relação à resposta -> $ { x. status } ( $ { x. statusText } ) ` ) ;
}
}
buscar ( 'https://jsonplaceholder.typicode.com/MissingResource' )
. então ( analisarStatus )
. então ( x => x. JSON ( ) )
. então ( JSON => console. registro ( JSON ) )
. pegar ( errar => console. registro ( errar ) ) ;
Neste trecho de código:
- Primeiro, defina uma função com o parâmetro declarado antes de analisar a resposta para lidar com as limitações enfrentadas.
- Agora, inclua o “ se/outro ”Declarações para lançar o erro enfrentado ou uma limitação personalizada.
- Depois disso, da mesma forma, aplique o “ buscar() ” e os métodos “then ()” associados para recuperar os dados aguardando a resposta, transformando-os em JSON e fazendo login no console.
- Por último, as exceções de tempo de execução podem ser tratadas colocando o “ pegar() ”Método no final da cadeia de promessas.
Saída
Por último, execute o cmdlet fornecido abaixo para executar o código e lançar as exceções enfrentadas:
índice do nó. mjs
Outros casos de uso de “busca de nó”
O ' busca de nó ”Também pode ser usado para fazer“ Solicitações de API ' ou ' Raspagem da web ”. Vamos discutir esses casos de uso em detalhes.
Utilização de node-fetch para fazer solicitações de API
A API pode ser necessária em vários cenários para buscar os dados de destino por meio de uma fonte de back-end. As solicitações HTTP podem ter vários métodos de autenticação, como a utilização de uma chave de API, onde o provedor de API fornece uma chave limitada apenas ao usuário. Outra abordagem para proteger a API pode ser via “ Autenticação Básica ”em que um cabeçalho precisa ser enviado para invocar a API.
A seguir está a demonstração da última abordagem, ou seja, “Autenticação Básica” na solicitação posterior com a ajuda do “ buscar() ”método:
( assíncrono ( ) => {const x = aguardar buscar ( 'http://httpbin.org/post' , {
método : 'PUBLICAR' ,
cabeçalhos : {
'Autorização' : `Básico $ { irmão ( 'senha de login' ) } `
} ,
corpo : JSON. restringir ( {
'chave' : 'valor'
} )
} ) ;
const resultado = aguarde x. texto ( ) ;
console. registro ( resultado ) ;
} ) ( ) ;
Na demonstração acima, um cabeçalho é enviado com um “ base64 ”string codificada do formato“ senha de login ”.
Utilização de node-fetch para Web Scraping
“ Raspagem da web ”refere-se à técnica na qual os dados/conteúdo são obtidos dos sites e analisados. Esta análise é obtida através do “ alegria ' biblioteca.
Abaixo está a demonstração de como buscar o título da página por meio do “ buscar() ”método e“ alegria ' biblioteca:
const biblioteca = exigir ( 'alegrar' ) ;( assíncrono ( ) => {
const x = aguardar buscar ( 'https://linuxhint.com/' ) ;
const e = aguarde x. texto ( ) ;
const $ = biblioteca. carregar ( e ) ;
console. registro ( $ ( 'título' ) . primeiro ( ) . texto ( ) ) ;
} ) ( ) ;
Este exemplo recupera o bloco do “ Linux ”Título do site.
Conclusão
As solicitações HTTP em node.js podem ser feitas com node-fetch enviando solicitações get, recuperando dados JSON da API REST ou enviando solicitações post. Além disso, as exceções e limitações podem ser tratadas de forma eficaz através do “ pegar() ”função.