Hoje é o dia seu aplicativo Node.js aprende a "ir buscar".

Ao seguir este tutorial básico, você aprenderá a criar uma API REST para seu aplicativo Node.js que envia consultas SQL++ (também conhecidas como N1QL) para recuperar dados do Couchbase.

Esta postagem dá continuidade à minha série introdutória sobre Usando o Node.js com o Couchbaseincluindo funções assíncronas e Criação de uma API REST com Node.js e Express.

A postagem de hoje continua de onde as anteriores pararam, depois de criar uma API REST para recuperação direta de documentos.

Configuração do banco de dados do Couchbase

Esta postagem pressupõe que você tenha instalado o amostra de viagem Balde que vem com tudo Couchbase instalações. É importante que você tenha esse conjunto de dados instalado, pois usaremos índices que são criados automaticamente e critérios específicos de documentos que são totalmente repetíveis.

A conectividade básica e a base da API REST já estão definidas em o roteiro que criamos juntos na semana passada. Vou incluí-lo no exemplo de código de hoje, mas você precisará ler todas as postagens anteriores (link acima) para obter uma explicação completa.

Além disso, para simplificar o exemplo de hoje, usaremos os escopos e as coleções padrão. Como de costume, quando se trata de consultar dados JSON, também presumo que você tenha conhecimento básico de JavaScript, Node.js e bancos de dados de documentos NoSQL.

Entendendo as consultas N1QL

O Linguagem de consulta N1QL para o Couchbase é quase exatamente igual ao SQL, com apenas algumas exceções.

Quando uma consulta N1QL solicita uma coluna específica de um Bucket, ela retorna uma lista de todos os documentos JSON correspondentes no Bucket. Se não houver dados no documento para a coluna, você receberá um NULL a menos que seja filtrado com um valor ONDE cláusula.

No mínimo, um índice primário deve estar disponível nos documentos para que esses documentos possam ser consultados. No entanto, o desempenho da consulta é aprimorado quando há um índice secundário definido para uma determinada coluna.

Esses dois índices podem ser criados com a própria consulta e podem ser feitos por meio de um script ou do Console da Web do Couchbase. Na verdade, você pode saber mais sobre esses índices e ver a consulta usada para criá-los explorando-os no console da Web.

Couchbase web console showing query index being created

No exemplo acima, há um índice criado na coluna chamada cidade em qualquer documento que esteja no amostra de viagem Balde.

Uma consulta de amostra

Antes de mergulhar no código, você pode executar consultas diretamente no console da Web para garantir que elas retornem o que você espera. Alterne para a seção Consulta e digite a seguinte consulta e pressione Executar.

Os resultados mostram no console que 323 documentos corresponderam. Observe que uma mistura de documentos é retornada - hotéis, aeroportos, etc., conforme mostrado no tipo coluna. (Agora, estou dizendo "colunas", mas é claro que elas são, na verdade, objetos/elementos JSON que podem ser incorporados a outros objetos).

Ajuste sua consulta para retornar apenas algumas colunas, como no exemplo abaixo.

Couchbase N1QL Query of Travel-sample database

Criação de uma função de consulta

Antes de mergulhar no restante do código, começaremos examinando os fundamentos da passagem de consultas usando o SDK do Node.js.

Em vez de passar uma string de consulta totalmente formada, você deve usar os espaços reservados incorporados para tornar o código reutilizável. Nesse caso, use parâmetros nomeados: Sua consulta terá uma variável de espaço reservado e você passará uma variável com os valores a serem usados.

Primeiro, crie a variável de consulta:

Em seguida, crie a variável de parâmetros de entrada:

Em seguida, passe ambos para a função de consulta de cluster para iniciar e retornar os resultados:

A função completa que você criou agora é possível:

REST-ificando sua consulta

A próxima etapa é adicionar essa função de consulta ao nosso exemplo anterior de código da API REST para que você possa receber um nome de cidade de entrada e retornar os resultados HTTP para o navegador.

Primeiro, faça com que a função passe em uma variável para o nome da cidade, como abaixo:

Em seguida, crie um endpoint de consulta (em vez do obter que usamos em uma postagem anterior) e mover a lógica da resposta REST para essa função.

Isso retorna o JSON RAW da chamada REST, conforme mostrado na imagem abaixo no navegador da Web ou na ferramenta da API REST do Postman.

couchbase N1QL query response from a REST API with node.js

Exemplo de código completo

Aqui está o resultado completo do código de amostra. Observe que alguns códigos anteriores de outros artigos foram mantidos para sua referência.

Conclusão

Há muitas novas direções que você pode tomar nesse projeto. Para começar, talvez queira incluir a captura adequada de erros, informações de log de saída para o console ou usar o results.rows para criar resultados tabulares.

Eu o incentivaria a aprofundar-se na documentação do Couchbase sobre o uso de consultas do SDK do Node.js.

Fique por dentro do restante da série de instruções sobre Node.js + Couchbase:

 

Pronto para arregaçar as mangas e fazer você mesmo?Teste o Couchbase hoje mesmo

 

Autor

Postado por Tyler Mitchell - Gerente sênior de marketing de produtos

Trabalha como Gerente Sênior de Marketing de Produto na Couchbase, ajudando a levar o conhecimento sobre os produtos para o centro das atenções do público e, ao mesmo tempo, apoiando nossas equipes de campo com conteúdo valioso. Sua paixão pessoal são todas as coisas geoespaciais, tendo trabalhado em GIS durante metade de sua carreira. Agora, a IA e a pesquisa vetorial estão em sua mente.

Deixar uma resposta