{"id":11742,"date":"2021-09-06T00:00:31","date_gmt":"2021-09-06T07:00:31","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=11742"},"modified":"2025-06-13T21:22:58","modified_gmt":"2025-06-14T04:22:58","slug":"build-a-rest-api-with-node-js-express-and-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/build-a-rest-api-with-node-js-express-and-couchbase\/","title":{"rendered":"Crie um aplicativo baseado em REST com Node.js, Express e Couchbase"},"content":{"rendered":"<p><strong>Se voc\u00ea for novo no Node.js, o Couchbase<\/strong> ou ambos, voc\u00ea est\u00e1 prestes a aumentar o n\u00edvel de suas habilidades.<\/p>\n<p>Hoje, mostrarei como criar um aplicativo m\u00ednimo baseado em REST para recuperar documentos do Couchbase usando o Node.js e o Express.<\/p>\n<p>Esta postagem d\u00e1 continuidade \u00e0 minha s\u00e9rie introdut\u00f3ria sobre <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/get-started-nodejs-sdk-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Usando o Node.js com o Couchbase<\/a> (incluindo <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/how-to-create-nodejs-async-get-upsert-calls-with-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">postagem da semana passada sobre fun\u00e7\u00f5es ass\u00edncronas<\/a>).<\/p>\n<p>Na postagem de hoje, vamos nos basear em meus exemplos anteriores de uso do Node.js e do <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/capella\/\" target=\"_blank\" rel=\"noopener\">Couchbase<\/a>portanto, d\u00ea uma olhada nesses dois artigos anteriores, caso ainda n\u00e3o o tenha feito. Tamb\u00e9m vou presumir que voc\u00ea tenha conhecimento b\u00e1sico de JavaScript, Node.js e bancos de dados de documentos NoSQL.<\/p>\n<h2>Obtenha o Express Module<\/h2>\n<p>Come\u00e7ando de onde paramos na semana passada, podemos adicionar uma interface REST baseada na Web para ajudar a isolar seu aplicativo Web do banco de dados. Para fazer isso, voc\u00ea precisa do m\u00f3dulo Express. Instale-o e adicione-o \u00e0s depend\u00eancias de seu pacote usando:<\/p>\n<pre>npm install express --save\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>Para testar se o Express est\u00e1 instalado corretamente, voc\u00ea pode criar um pequeno aplicativo (<code>app.js<\/code>) that creates the HTTP server and returns a `Hello World` value. For later convenience, wrap it with an `async` function as you can see below:<\/p>\n<pre>var app = require('express')();\r\nconst couchbase = require(\"couchbase\");\r\n\r\nasync function main(){\r\n  app.get('\/', (req, res) =&gt; res.send('Hello world!'));\r\n  app.listen(3000, () =&gt; console.log('Listening on port 3000'));\r\n}\r\n\r\nmain();\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>Inicie-o e acesse-o por meio de um navegador da Web na porta 3000. Ele deve se parecer com a imagem abaixo:<\/p>\n<pre>n\u00f3 app.js<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/hello-world-node-express-couchbase.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11743\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/hello-world-node-express-couchbase.png\" alt=\"Hello world showing in a web browser from Node.js and Express\" width=\"734\" height=\"577\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/hello-world-node-express-couchbase.png 734w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/hello-world-node-express-couchbase-300x236.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/hello-world-node-express-couchbase-20x16.png 20w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><\/a><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>Parab\u00e9ns! Voc\u00ea criou com sucesso seu primeiro aplicativo Express, embora pequeno.<\/p>\n<h2>Cria\u00e7\u00e3o do aplicativo<\/h2>\n<p>O aplicativo tem tr\u00eas componentes:<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Gerenciamento de rotas<\/li>\n<li>Conectividade do banco de dados<\/li>\n<li>A camada do servidor HTTP<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h3>Adicionar uma rota expressa para recupera\u00e7\u00e3o de dados<\/h3>\n<p>The application intercepts and serves the root path `\/`. We\u2019ll create a route called <code>obter<\/code> para recuperar um documento espec\u00edfico. O usu\u00e1rio REST fornece um ID de documento e retorna <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/json-database\/?ref=blog\" target=\"_blank\" rel=\"noopener\">o documento JSON<\/a> usando a seguinte sintaxe:<\/p>\n<pre>localhost:3000\/get\/[documentID]<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>A fun\u00e7\u00e3o para criar essa rota inclui dois objetos importantes: - <code>req<\/code> (solicita\u00e7\u00e3o) e <code>res<\/code> (resultados) - que usaremos para obter dados de e para o aplicativo. Veja o exemplo abaixo:<\/p>\n<pre>  app.get('\/get\/:docid', \r\n    runAsync(async (req, res) =&gt; {\r\n      var docid = req.params.docid;\r\n      var docjson = await getDoc(docid, function(err, result){\r\n        res.json(result.content)\r\n      });\r\n  }));\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>Observe que o <code>:docid<\/code> torna-se uma vari\u00e1vel que voc\u00ea pode acessar por meio do objeto de solicita\u00e7\u00e3o: <code>var docid = req.params.docid<\/code>. Em seguida, ele \u00e9 passado para o <code>getDoc()<\/code> que abordaremos em um minuto.<\/p>\n<p>O aplicativo tamb\u00e9m tem essa fun\u00e7\u00e3o de conveni\u00eancia abaixo para executar tudo de forma ass\u00edncrona:<\/p>\n<pre>  fun\u00e7\u00e3o runAsync (callback) {\r\n    return function (req, res, next) {\r\n      callback(req, res, next)\r\n      .catch(next)\r\n    }\r\n  }\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>A fun\u00e7\u00e3o acima agrupa muito bem suas chamadas, mas n\u00e3o a explicarei em detalhes aqui (talvez em um post futuro). Por enquanto, basta adicion\u00e1-la ao script.<\/p>\n<h3>Adicionar uma fun\u00e7\u00e3o de recupera\u00e7\u00e3o de documentos<\/h3>\n<p>A conectividade do banco de dados no script \u00e9 t\u00e3o b\u00e1sica quanto nas postagens anteriores desta s\u00e9rie. Selecione um <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/scopes-and-collections-for-modern-multi-tenant-applications-couchbase-7-0\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Balde e coleta<\/a>e, em seguida, use o <code>get()<\/code> para recuperar um documento com base em um determinado ID de documento.<\/p>\n<p>Primeiro vem a parte da conectividade. Se voc\u00ea tiver um nome de usu\u00e1rio, senha, Bucket ou Collection diferente, substitua-o aqui:<\/p>\n<pre>  var cluster = new couchbase.Cluster(\"couchbase:\/\/localhost\", {\r\n    username: \"Administrator\",\r\n    password: \"Administrator\"\r\n  });\r\n\r\n  var bucket = cluster.bucket(\"travel-sample\");\r\n  var collection = bucket.defaultCollection();\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>Observe que eu hospedo o aplicativo em um servidor na minha rede que tamb\u00e9m hospeda o banco de dados (<code>localhost<\/code>). Mas eu acesso o aplicativo do meu laptop de desenvolvimento, portanto, nas amostras do navegador da Web abaixo, voc\u00ea ver\u00e1 o endere\u00e7o IP <code>192.168.0.158<\/code> atingindo a API REST.<\/p>\n<p>Agora vamos dar uma olhada na fun\u00e7\u00e3o principal de recupera\u00e7\u00e3o de documentos:<\/p>\n<pre>  var getDoc = async (key) =&gt; {\r\n      var result = await collection.get(key);\r\n      console.log(result)\r\n      return result\r\n  };\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>Usamos o <code>cole\u00e7\u00e3o<\/code> que \u00e9 a conex\u00e3o do banco de dados do Couchbase com o Bucket, etc., definida anteriormente. A vari\u00e1vel <code>get()<\/code> recebe uma entrada: uma cadeia de caracteres com um ID de documento. Por exemplo, usamos <code>hotel_5336<\/code> nas postagens anteriores desta s\u00e9rie.<\/p>\n<h3>Executando a API REST<\/h3>\n<p>O servidor HTTP para a API REST tamb\u00e9m precisa ser executado. Ele n\u00e3o foi alterado desde o primeiro aplicativo de teste desta postagem:<\/p>\n<pre>app.listen(3000, () =&gt; console.log('Listening on port 3000'));\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>Isso abrange todo o c\u00f3digo; uma listagem completa est\u00e1 inclu\u00edda abaixo. Agora voc\u00ea pode executar o servidor como antes (<code> n\u00f3 app.js<\/code>) e forne\u00e7a um ID de documento por meio do navegador da Web, por exemplo, <code>https:\/\/192.168.0.158:3000\/get\/hotel_5336<\/code>.<\/p>\n<p>O documento solicitado \u00e9 impresso no console e retornado ao navegador:<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/get-function-node-express-couchbase.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium_large wp-image-11744\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/get-function-node-express-couchbase-768x748.png\" alt=\"Database retrieval REST API with Node.js and Couchbase\" width=\"768\" height=\"748\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/get-function-node-express-couchbase-768x748.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/get-function-node-express-couchbase-300x292.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/get-function-node-express-couchbase-50x50.png 50w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/get-function-node-express-couchbase-20x20.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/get-function-node-express-couchbase.png 960w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h2>Exemplo de c\u00f3digo completo<\/h2>\n<pre>var app = require('express')();\r\n\r\nvar couchbase = require(\"couchbase\");\r\n\r\nasync function main(){\r\n\r\n  app.get('\/get\/:docid',\r\n    runAsync(async (req, res) =&gt; {\r\n      var docid = req.params.docid;\r\n      var docjson = await getDoc(docid, function(err, result){\r\n        res.json(result.content)\r\n      });\r\n\r\n      res.json(docjson.content);\r\n  }));\r\n\r\n  app.listen(3000, () =&gt; console.log('Listening on port 3000'));\r\n\r\n  function runAsync (callback) {\r\n    return function (req, res, next) {\r\n      callback(req, res, next)\r\n      .catch(next)\r\n    }\r\n  }\r\n\r\n  var cluster = new couchbase.Cluster(\"couchbase:\/\/localhost\", {\r\n    username: \"Administrator\",\r\n    password: \"Administrator\"\r\n  });\r\n\r\n  var bucket = cluster.bucket(\"travel-sample\");\r\n  var collection = bucket.defaultCollection();\r\n\r\n  var getDoc = async (key) =&gt; {\r\n      var result = await collection.get(key);\r\n      console.log(result)\r\n      return result\r\n  };\r\n\r\n}\r\n\r\nmain();\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h2>Conclus\u00e3o<\/h2>\n<p>Nas pr\u00f3ximas postagens, abordarei como criar uma consulta ao banco de dados, realizar pesquisas de texto completo e muito mais, tudo isso usando diferentes rotas do Express.<\/p>\n<p>Enquanto isso, leve seu aplicativo para o pr\u00f3ximo n\u00edvel fazendo algumas das coisas a seguir:<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Adicionar captura de erros.<\/li>\n<li>Crie um sistema de autentica\u00e7\u00e3o, como o JSON Web Token ou JWT (consulte <a href=\"https:\/\/docs.couchbase.com\/nodejs-sdk\/current\/hello-world\/sample-application.html?ref=blog\" target=\"_blank\" rel=\"noopener\">este projeto de demonstra\u00e7\u00e3o de amostra de viagem<\/a>).<\/li>\n<li>Leia mais sobre <a href=\"https:\/\/developer.couchbase.com\/topic\/nodejs\/?ref=blog\" target=\"_blank\" rel=\"noopener\">outras fun\u00e7\u00f5es do SDK do Couchbase Node.js<\/a> que voc\u00ea pode adicionar ao aplicativo.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><em>Fique por dentro do restante da s\u00e9rie de instru\u00e7\u00f5es sobre Node.js + Couchbase:<\/em><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/get-started-nodejs-sdk-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Como come\u00e7ar a usar o SDK do Node.js para o Couchbase<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/how-to-create-nodejs-async-get-upsert-calls-with-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Como criar chamadas Get\/Upsert ass\u00edncronas com o Node.js e o Couchbase<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/build-a-rest-api-with-node-js-express-and-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Crie um aplicativo baseado em REST com Node.js, Express e Couchbase<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/how-to-query-json-data-n1ql-node-js-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Como consultar dados JSON usando N1QL para Node.js e Couchbase<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/how-to-full-text-search-javascript-app\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Como adicionar a funcionalidade de pesquisa de texto completo ao seu aplicativo JavaScript<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 30px\" aria-hidden=\"true\"><\/div>\n<div style=\"text-align: center\"><strong>N\u00e3o se limite a ler sobre o assunto. <em>experimentar<\/em>:<br \/><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/downloads\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Fa\u00e7a o download do Couchbase e comece a construir<\/a><\/strong><\/div>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>If you&#8217;re new to Node.js, Couchbase or both, you&#8217;re about to level up your skills. Today I&#8217;ll show you how to build a minimal REST-based application for retrieving documents from Couchbase using Node.js and Express. This post continues my introductory [&hellip;]<\/p>","protected":false},"author":75185,"featured_media":11851,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[9327,1822,9336,2201],"tags":[9400,2312,1254,1543,1261,1725,1950],"ppma_author":[9163],"class_list":["post-11742","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","category-node-js","category-scopes-and-collections","category-tools-sdks","tag-async-function","tag-document-database","tag-express","tag-javascript","tag-json","tag-nosql-database","tag-rest-api"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Node.js, Express and Couchbase: Build REST-Based Application<\/title>\n<meta name=\"description\" content=\"Visit this post for best practices on how to build a minimal REST-based application for retrieving documents from Couchbase using Node.js and Express.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/build-a-rest-api-with-node-js-express-and-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build a REST-Based Application with Node.js, Express and Couchbase\" \/>\n<meta property=\"og:description\" content=\"Visit this post for best practices on how to build a minimal REST-based application for retrieving documents from Couchbase using Node.js and Express.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/build-a-rest-api-with-node-js-express-and-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-06T07:00:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:22:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/how-to-build-rest-api-based-application-nodejs-express-couchbase-social.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tyler Mitchell - Senior Product Marketing Manager\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/how-to-build-rest-api-based-application-nodejs-express-couchbase-social.png\" \/>\n<meta name=\"twitter:creator\" content=\"@1tylermitchell\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tyler Mitchell - Senior Product Marketing Manager\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/\"},\"author\":{\"name\":\"Tyler Mitchell - Senior Product Marketing Manager\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/684cc0e5c60cd2e4b591db9621494ed0\"},\"headline\":\"Build a REST-Based Application with Node.js, Express and Couchbase\",\"datePublished\":\"2021-09-06T07:00:31+00:00\",\"dateModified\":\"2025-06-14T04:22:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/\"},\"wordCount\":771,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/how-to-build-rest-api-based-application-nodejs-express-couchbase.png\",\"keywords\":[\"async function\",\"document database\",\"express\",\"javascript\",\"JSON\",\"NoSQL Database\",\"REST API\"],\"articleSection\":[\"JavaScript\",\"Node.js\",\"Scopes and Collections\",\"Tools &amp; SDKs\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/\",\"name\":\"Node.js, Express and Couchbase: Build REST-Based Application\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/how-to-build-rest-api-based-application-nodejs-express-couchbase.png\",\"datePublished\":\"2021-09-06T07:00:31+00:00\",\"dateModified\":\"2025-06-14T04:22:58+00:00\",\"description\":\"Visit this post for best practices on how to build a minimal REST-based application for retrieving documents from Couchbase using Node.js and Express.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/how-to-build-rest-api-based-application-nodejs-express-couchbase.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/how-to-build-rest-api-based-application-nodejs-express-couchbase.png\",\"width\":1200,\"height\":628,\"caption\":\"Build a REST API application that uses Node.js, Express and Couchbase to retrieve documents\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build a REST-Based Application with Node.js, Express and Couchbase\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/684cc0e5c60cd2e4b591db9621494ed0\",\"name\":\"Tyler Mitchell - Senior Product Marketing Manager\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/d8a7c532bf2b94b7a2fe7a8439aafd75\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ebec3213e756f2e1f7118fcb5722e2cd1484c9256ae34ceb8f77054b986f21ce?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ebec3213e756f2e1f7118fcb5722e2cd1484c9256ae34ceb8f77054b986f21ce?s=96&d=mm&r=g\",\"caption\":\"Tyler Mitchell - Senior Product Marketing Manager\"},\"description\":\"Works as Senior Product Marketing Manager at Couchbase, helping bring knowledge about products into the public limelight while also supporting our field teams with valuable content. His personal passion is all things geospatial, having worked in GIS for half his career. Now AI and Vector Search is top of mind.\",\"sameAs\":[\"https:\/\/linkedin.com\/in\/tylermitchell\",\"https:\/\/x.com\/1tylermitchell\",\"https:\/\/www.youtube.com\/channel\/UCBZFuoiTcg0f3lGSQwLjeTg\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/tylermitchell\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Node.js, Express and Couchbase: Build REST-Based Application","description":"Visit this post for best practices on how to build a minimal REST-based application for retrieving documents from Couchbase using Node.js and Express.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/build-a-rest-api-with-node-js-express-and-couchbase\/","og_locale":"pt_BR","og_type":"article","og_title":"Build a REST-Based Application with Node.js, Express and Couchbase","og_description":"Visit this post for best practices on how to build a minimal REST-based application for retrieving documents from Couchbase using Node.js and Express.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/build-a-rest-api-with-node-js-express-and-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-09-06T07:00:31+00:00","article_modified_time":"2025-06-14T04:22:58+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/how-to-build-rest-api-based-application-nodejs-express-couchbase-social.png","type":"image\/png"}],"author":"Tyler Mitchell - Senior Product Marketing Manager","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/how-to-build-rest-api-based-application-nodejs-express-couchbase-social.png","twitter_creator":"@1tylermitchell","twitter_misc":{"Written by":"Tyler Mitchell - Senior Product Marketing Manager","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/"},"author":{"name":"Tyler Mitchell - Senior Product Marketing Manager","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/684cc0e5c60cd2e4b591db9621494ed0"},"headline":"Build a REST-Based Application with Node.js, Express and Couchbase","datePublished":"2021-09-06T07:00:31+00:00","dateModified":"2025-06-14T04:22:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/"},"wordCount":771,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/how-to-build-rest-api-based-application-nodejs-express-couchbase.png","keywords":["async function","document database","express","javascript","JSON","NoSQL Database","REST API"],"articleSection":["JavaScript","Node.js","Scopes and Collections","Tools &amp; SDKs"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/","name":"Node.js, Express and Couchbase: Build REST-Based Application","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/how-to-build-rest-api-based-application-nodejs-express-couchbase.png","datePublished":"2021-09-06T07:00:31+00:00","dateModified":"2025-06-14T04:22:58+00:00","description":"Visit this post for best practices on how to build a minimal REST-based application for retrieving documents from Couchbase using Node.js and Express.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/how-to-build-rest-api-based-application-nodejs-express-couchbase.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/how-to-build-rest-api-based-application-nodejs-express-couchbase.png","width":1200,"height":628,"caption":"Build a REST API application that uses Node.js, Express and Couchbase to retrieve documents"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Build a REST-Based Application with Node.js, Express and Couchbase"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/684cc0e5c60cd2e4b591db9621494ed0","name":"Tyler Mitchell - Gerente s\u00eanior de marketing de produtos","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/d8a7c532bf2b94b7a2fe7a8439aafd75","url":"https:\/\/secure.gravatar.com\/avatar\/ebec3213e756f2e1f7118fcb5722e2cd1484c9256ae34ceb8f77054b986f21ce?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ebec3213e756f2e1f7118fcb5722e2cd1484c9256ae34ceb8f77054b986f21ce?s=96&d=mm&r=g","caption":"Tyler Mitchell - Senior Product Marketing Manager"},"description":"Trabalha como Gerente S\u00eanior de Marketing de Produto na Couchbase, ajudando a levar o conhecimento sobre os produtos para o centro das aten\u00e7\u00f5es do p\u00fablico e, ao mesmo tempo, apoiando nossas equipes de campo com conte\u00fado valioso. Sua paix\u00e3o pessoal s\u00e3o todas as coisas geoespaciais, tendo trabalhado em GIS durante metade de sua carreira. Agora, a IA e a pesquisa vetorial est\u00e3o em sua mente.","sameAs":["https:\/\/linkedin.com\/in\/tylermitchell","https:\/\/x.com\/1tylermitchell","https:\/\/www.youtube.com\/channel\/UCBZFuoiTcg0f3lGSQwLjeTg"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/tylermitchell\/"}]}},"authors":[{"term_id":9163,"user_id":75185,"is_guest":0,"slug":"tylermitchell","display_name":"Tyler Mitchell - Senior Product Marketing Manager","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/876da1e4284f1832c871b3514caf7867357744b8c0a370ef6f53a79dee2f379e?s=96&d=mm&r=g","author_category":"","last_name":"Mitchell - Senior Product Marketing Manager","first_name":"Tyler","job_title":"Senior Product Marketing Manager","user_url":"","description":"Trabalha como Gerente S\u00eanior de Marketing de Produto na Couchbase, ajudando a levar o conhecimento sobre os produtos para o centro das aten\u00e7\u00f5es do p\u00fablico e, ao mesmo tempo, apoiando nossas equipes de campo com conte\u00fado valioso. Sua paix\u00e3o pessoal s\u00e3o todas as coisas geoespaciais, tendo trabalhado em GIS durante metade de sua carreira. Agora, a IA e a pesquisa vetorial est\u00e3o em sua mente."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/11742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/75185"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=11742"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/11742\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/11851"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=11742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=11742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=11742"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=11742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}