Se você é um desenvolvedor de JavaScript que está Ao fazer a transição para o uso do Node.js, você vai querer aproveitar as vantagens das funções assíncronas.
Isso ocorre porque as chamadas de API assíncronas não bloqueiam seu código e retornam promessas. Nesta publicação, mostrarei como criar funções assíncronas no Node.js que chamam o SDK do Couchbase.
Recapitulação rápida: Configurando um projeto Node.js com o Couchbase
Esta postagem dá continuidade à minha série introdutória sobre Usando o Node.js com o Couchbase.
Uma empresa existente Couchbase banco de dados (com amostra de viagem
Bucket ativado) e Node.js é considerado para este tutorial, mas para obter mais detalhes veja a postagem da semana passada sobre como começar a usar o SDK do Node.js para o Couchbase.
Para atualizá-lo, primeiro instalar o SDK do Couchbase Node.js usando o npm
juntamente com o comando salvar
para armazenar a dependência em seu package.json
arquivo de configuração. Veja como isso se parece:
1 2 3 |
cd cb-nó2 npm inicial -y npm instalar couchbase --salvar |
Agora você está pronto para passar para a próxima etapa.
Conectar-se ao Couchbase com uma função assíncrona
Conectando-se ao Couchbase usando o JavaScript assíncrono
requer que você importe a biblioteca, além de outros três componentes:
-
- Nome/endereço do servidor
- Nome de usuário/senha
- O Bucket ao qual se conectar
Embrulhe tudo com um assíncrono
e criar a função agrupamento
objeto.
1 2 3 4 5 6 7 |
const couchbase = exigir("couchbase") assíncrono função principal(){ const agrupamento = novo couchbase.Aglomerado("couchbase://localhost", { nome de usuário: "Administrador", senha: "Administrador" }); |
Depois de fornecer as principais informações de conexão, selecione o Bucket e qualquer escopo ou coleção específica (usei a coleção padrão neste exemplo). O resultado Coleção
é usado para chamadas subsequentes ao banco de dados.
1 2 |
const balde = agrupamento.balde("amostra de viagem"); const coleção = balde.defaultCollection(); |
Obtendo um documento JSON
Agora que você tem uma função assíncrona configurada, vamos aprender como você pode obter
a Documento JSON do Couchbase.
Para concluir uma operação básica de valor-chave, você precisa conhecer um ID de documento existente. Para este exemplo, vamos usar o ID do Chalets Marmotte Mountain Adventure na França: hotel_5336
.
O básico obter
sintaxe - mostrada em postagem anterior do blog também - é:
1 |
coleção.obter(chave) |
Para torná-lo assíncrono, use o aguardar
dentro de uma palavra-chave assíncrono
function. Chamaremos essa função posteriormente com nosso ID do hotel. Também é um bom hábito começar a capturar e imprimir todos os erros.
1 2 3 4 5 6 7 8 9 |
const getHotel = assíncrono (chave) => { tentar { const resultado = aguardar coleção.obter(chave); console.registro("Resultado:"); console.registro(resultado); } captura (erro) { console.erro(erro); } }; |
Chame sua nova função no final do script. Lembre-se de que todo o script deve ser mantido dentro do diretório principal()
que você chama:
1 2 3 4 5 |
... aguardar getHotel("hotel_5336"); } principal(); |
Em seguida, teste sua função assíncrona executando e vendo a saída para esse documento específico:
1 2 3 4 5 6 7 8 9 |
$ nó aplicativo.js Resultado: ObterResultado { conteúdo: { título: "Chamonix, nome: 'Aventura na Montanha Chalets Marmotte', endereço: '31 chemin des Rambles, Argentiere', direções: nulo, telefone: '+33682891523', |
Inserção ascendente de um documento JSON
A seguir, vamos abordar como você pode upsert
um documento JSON usando sua função assíncrona.
Usando seu script original, você pode adicionar a capacidade de criar um novo documento e, em seguida, solicitá-lo de volta - para mostrar a viagem completa. Para salvar ou adicionar um documento ao banco de dados, use o comando upsert
e passar a ele um objeto JSON.
Lembre-se de que você pode manter a conexão e obter
e criar uma nova função para a função upsert
.
Primeiro, crie o novoHotel
função. Como você pode ver abaixo, nós a configuramos para receber a chave/ID e um objeto JSON.
1 2 3 4 5 6 7 8 9 |
const novoHotel = assíncrono (chave,jsondoc) => { tentar { const resultado positivo = aguardar coleção.upsert(chave, jsondoc); console.registro("\nInsira o resultado:"); console.registro(resultado positivo); } captura (erro){ console.erro(erro); } }; |
Em seguida, crie o documento JSON que enviaremos ao banco de dados do Couchbase.
1 2 3 4 5 6 |
jsondoc = { "tipo": "hotel", "id": 3, "name" (nome): "Le Grande", "cidade": "Paris, França" } |
Chamaremos a nova entrada do hotel de hotel_3
ao chamar a nova função:
1 |
aguardar novoHotel("hotel_3", jsondoc); |
Se você colocar todo esse código antes do getHotel
você pode ajustar o ID do documento para a chamada obter
para verificar se o novo hotel foi salvo.
Aqui está o resultado da criação do documento e da obtenção do mesmo documento de volta:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ nó aplicativo.js Upsert resultado: Resultado da mutação { cas: CbCas<1629156064638664704>, token: CbMutationToken<771:243978275681931:85:viagens-amostra> } (nó:3060577) [DEP0079] DeprecationWarning: Personalizado inspeção função em Objetos via .inspecionar() é depreciado Resultado: ObterResultado { conteúdo: { tipo: 'hotel', id: 3, nome: "Le Grande, cidade: "Paris, França }, cas: CbCas<1629156064638664704>, tempo de expiração: indefinido } |
Exemplo de código completo
Aqui está todo o código de exemplo reunido na postagem de hoje:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
const couchbase = exigir("couchbase") assíncrono função principal(){ const agrupamento = novo couchbase.Aglomerado("couchbase://localhost", { nome de usuário: "Administrador", senha: "Administrador" }); const balde = agrupamento.balde("amostra de viagem"); const coleção = balde.defaultCollection(); const getHotel = assíncrono (chave) => { tentar { const resultado = aguardar coleção.obter(chave); console.registro("\nResult:"); console.registro(resultado); } captura (erro){ console.erro(erro); } }; const novoHotel = assíncrono (chave,jsondoc) => { tentar { const resultado positivo = aguardar coleção.upsert(chave, jsondoc); console.registro("\nInsira o resultado:"); console.registro(resultado positivo); } captura (erro){ console.erro(erro); } }; jsondoc = { "tipo": "hotel", "id": 3, "name" (nome): "Le Grande", "cidade": "Paris, França" } aguardar novoHotel("hotel_3", jsondoc); aguardar getHotel("hotel_3"); } principal(); |
Conclusão
Parabéns por ter feito um curso completo upsert
e obter
no Node.js! Agora você está pronto para criar um aplicativo mais complicado, que abordarei em futuras publicações no blog.
Para obter um guia do desenvolvedor mais detalhado, consulte o Documentação do SDK do Couchbase Node.js aqui.
Fique por dentro do restante da série de instruções sobre Node.js + Couchbase:
-
- Como começar a usar o SDK do Node.js para o Couchbase
- Como criar chamadas Get/Upsert assíncronas com o Node.js e o Couchbase
- Crie um aplicativo baseado em REST com Node.js, Express e Couchbase
- Como consultar dados JSON usando N1QL para Node.js e Couchbase
- Como adicionar a funcionalidade de pesquisa de texto completo ao seu aplicativo JavaScript
Experimente o Couchbase Cloud hoje mesmo