{"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\/es\/build-a-rest-api-with-node-js-express-and-couchbase\/","title":{"rendered":"Construir una aplicaci\u00f3n basada en REST con Node.js, Express y Couchbase"},"content":{"rendered":"<p><strong>Si eres nuevo en Node.js, Couchbase<\/strong> o ambos, est\u00e1s a punto de subir de nivel.<\/p>\n<p>Hoy te mostrar\u00e9 c\u00f3mo construir una aplicaci\u00f3n m\u00ednima basada en REST para recuperar documentos de Couchbase usando Node.js y Express.<\/p>\n<p>Este post contin\u00faa mi serie introductoria sobre <a href=\"https:\/\/www.couchbase.com\/blog\/es\/get-started-nodejs-sdk-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">usando Node.js con Couchbase<\/a> (incluyendo <a href=\"https:\/\/www.couchbase.com\/blog\/es\/how-to-create-nodejs-async-get-upsert-calls-with-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">el post de la semana pasada sobre funciones as\u00edncronas<\/a>).<\/p>\n<p>En el post de hoy, nos basaremos en mis ejemplos anteriores de uso de Node.js y <a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/capella\/\" target=\"_blank\" rel=\"noopener\">Couchbase<\/a>as\u00ed que echa un vistazo a esos dos art\u00edculos anteriores si a\u00fan no lo has hecho. Tambi\u00e9n voy a suponer que usted tiene familiaridad b\u00e1sica con JavaScript, Node.js y bases de datos de documentos NoSQL.<\/p>\n<h2>Obtener el m\u00f3dulo expr\u00e9s<\/h2>\n<p>Empezando por donde lo dejamos la semana pasada, podemos a\u00f1adir una interfaz REST basada en web para ayudar a aislar tu aplicaci\u00f3n web de la base de datos. Para ello, necesitas el m\u00f3dulo Express. Inst\u00e1lalo y a\u00f1\u00e1delo a las dependencias de tu paquete 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 comprobar que Express se ha instalado correctamente, puede crear una peque\u00f1a aplicaci\u00f3n (<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>Ejec\u00fatelo y acceda a \u00e9l a trav\u00e9s de un navegador web en el puerto 3000. Deber\u00eda verse algo parecido a esta imagen de abajo:<\/p>\n<pre>node 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>Enhorabuena. Has creado con \u00e9xito tu primera aplicaci\u00f3n Express, aunque sea peque\u00f1a.<\/p>\n<h2>Creaci\u00f3n de la aplicaci\u00f3n<\/h2>\n<p>La aplicaci\u00f3n tiene tres componentes:<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Gesti\u00f3n de rutas<\/li>\n<li>Conectividad de bases de datos<\/li>\n<li>La capa del servidor HTTP<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h3>A\u00f1adir una ruta expr\u00e9s para la recuperaci\u00f3n de datos<\/h3>\n<p>The application intercepts and serves the root path `\/`. We\u2019ll create a route called <code>consiga<\/code> para recuperar un documento espec\u00edfico. El usuario REST proporciona un ID de documento y devuelve <a href=\"https:\/\/www.couchbase.com\/blog\/es\/json-database\/?ref=blog\" target=\"_blank\" rel=\"noopener\">el documento JSON<\/a> utilizando la siguiente sintaxis:<\/p>\n<pre>localhost:3000\/get\/[documentID]<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>La funci\u00f3n para crear esa ruta incluye dos objetos importantes - <code>consulte<\/code> (solicitud) y <code>res<\/code> (resultados) - que utilizaremos para obtener datos hacia y desde la aplicaci\u00f3n. V\u00e9ase el ejemplo siguiente:<\/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>Obs\u00e9rvese que el <code>:docid<\/code> se convierte en una variable a la que se puede acceder a trav\u00e9s del objeto de solicitud: <code>var docid = req.params.docid<\/code>. A continuaci\u00f3n, se pasa al <code>getDoc()<\/code> que veremos dentro de un minuto.<\/p>\n<p>La aplicaci\u00f3n tambi\u00e9n tiene esta funci\u00f3n de conveniencia a continuaci\u00f3n para ejecutar todo de forma as\u00edncrona:<\/p>\n<pre>  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<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>La funci\u00f3n de arriba envuelve sus llamadas muy bien, pero no voy a explicar en detalle aqu\u00ed (tal vez en un futuro post). Por ahora, s\u00f3lo tiene que a\u00f1adir a la secuencia de comandos.<\/p>\n<h3>A\u00f1adir una funci\u00f3n de recuperaci\u00f3n de documentos<\/h3>\n<p>La conectividad de la base de datos en el script es tan b\u00e1sica como en las entradas anteriores de esta serie. Seleccione una <a href=\"https:\/\/www.couchbase.com\/blog\/es\/scopes-and-collections-for-modern-multi-tenant-applications-couchbase-7-0\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Cubo y recogida<\/a>utilice el bot\u00f3n <code>get()<\/code> para recuperar un documento basado en un ID de documento dado.<\/p>\n<p>Primero viene la parte de la conectividad. Si tienes otro nombre de usuario, contrase\u00f1a, cubo o colecci\u00f3n, sustit\u00fayelo aqu\u00ed:<\/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>Tenga en cuenta que alojo la aplicaci\u00f3n en un servidor de mi red que tambi\u00e9n aloja la base de datos (<code>localhost<\/code>). Pero yo accedo a la aplicaci\u00f3n desde mi port\u00e1til de desarrollo, por lo que en las muestras del navegador web a continuaci\u00f3n ver\u00e1 la direcci\u00f3n IP <code>192.168.0.158<\/code> a la API REST.<\/p>\n<p>Veamos ahora la funci\u00f3n principal de recuperaci\u00f3n 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>Utilizamos el <code>colecci\u00f3n<\/code> que es la conexi\u00f3n de la base de datos Couchbase al Bucket, etc., definido anteriormente. La variable <code>get()<\/code> toma una entrada: una cadena con un ID de documento. Por ejemplo, utilizamos <code>hotel_5336<\/code> en las entradas anteriores de esta serie.<\/p>\n<h3>Ejecutar la API REST<\/h3>\n<p>El servidor HTTP para la API REST tambi\u00e9n debe ejecutarse. No ha cambiado desde la primera aplicaci\u00f3n de prueba en este post:<\/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>Eso cubre todo el c\u00f3digo; a continuaci\u00f3n se incluye una lista completa. Ahora puede ejecutar el servidor como antes (<code> node app.js<\/code>) y proporcionar un ID de documento a trav\u00e9s del navegador web - p. ej, <code>https:\/\/192.168.0.158:3000\/get\/hotel_5336<\/code>.<\/p>\n<p>El documento solicitado se imprime en la consola y se devuelve al 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>Ejemplo 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>Conclusi\u00f3n<\/h2>\n<p>En pr\u00f3ximas entradas explicar\u00e9 c\u00f3mo crear una consulta a una base de datos, realizar b\u00fasquedas de texto completo y mucho m\u00e1s, todo ello utilizando diferentes rutas Express.<\/p>\n<p>Mientras tanto, lleve su solicitud al siguiente nivel haciendo algunas de las siguientes cosas:<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>A\u00f1adir captura de errores.<\/li>\n<li>Cree un sistema de autenticaci\u00f3n, como JSON Web Token o JWT (consulte <a href=\"https:\/\/docs.couchbase.com\/nodejs-sdk\/current\/hello-world\/sample-application.html?ref=blog\" target=\"_blank\" rel=\"noopener\">este proyecto de demostraci\u00f3n de muestras de viajes<\/a>).<\/li>\n<li>M\u00e1s informaci\u00f3n <a href=\"https:\/\/developer.couchbase.com\/topic\/nodejs\/?ref=blog\" target=\"_blank\" rel=\"noopener\">otras funciones del SDK de Couchbase Node.js<\/a> que puedes a\u00f1adir a la aplicaci\u00f3n.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><em>P\u00f3ngase al d\u00eda con el resto de la serie Node.js + Couchbase how-to:<\/em><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/get-started-nodejs-sdk-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">C\u00f3mo empezar con el SDK de Node.js para Couchbase<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/how-to-create-nodejs-async-get-upsert-calls-with-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">C\u00f3mo crear llamadas as\u00edncronas Get\/Upsert con Node.js y Couchbase<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/build-a-rest-api-with-node-js-express-and-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Construir una aplicaci\u00f3n basada en REST con Node.js, Express y Couchbase<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/how-to-query-json-data-n1ql-node-js-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">C\u00f3mo consultar datos JSON con N1QL para Node.js y Couchbase<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/how-to-full-text-search-javascript-app\/?ref=blog\" target=\"_blank\" rel=\"noopener\">C\u00f3mo a\u00f1adir la funci\u00f3n de b\u00fasqueda de texto completo a su aplicaci\u00f3n 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>No te limites a leer sobre ello - <em>pru\u00e9balo<\/em>:<br \/><a href=\"https:\/\/www.couchbase.com\/blog\/es\/downloads\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Descargar Couchbase y empezar 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 v26.2 (Yoast SEO v26.2) - 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\/es\/build-a-rest-api-with-node-js-express-and-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\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\/es\/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\":\"es\",\"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\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\",\"@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.\",\"sameAs\":[\"https:\/\/linkedin.com\/in\/tylermitchell\",\"https:\/\/x.com\/1tylermitchell\",\"https:\/\/www.youtube.com\/channel\/UCBZFuoiTcg0f3lGSQwLjeTg\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/tylermitchell\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Node.js, Express and Couchbase: Build REST-Based Application","description":"Visita este post para conocer las mejores pr\u00e1cticas sobre c\u00f3mo construir una aplicaci\u00f3n m\u00ednima basada en REST para recuperar documentos de Couchbase usando Node.js y 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\/es\/build-a-rest-api-with-node-js-express-and-couchbase\/","og_locale":"es_MX","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\/es\/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":"es","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":"Visita este post para conocer las mejores pr\u00e1cticas sobre c\u00f3mo construir una aplicaci\u00f3n m\u00ednima basada en REST para recuperar documentos de Couchbase usando Node.js y Express.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/build-a-rest-api-with-node-js-express-and-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"es","@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":"El blog de Couchbase","description":"Couchbase, la base de datos 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":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@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 - Director de Marketing de Producto","image":{"@type":"ImageObject","inLanguage":"es","@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.","sameAs":["https:\/\/linkedin.com\/in\/tylermitchell","https:\/\/x.com\/1tylermitchell","https:\/\/www.youtube.com\/channel\/UCBZFuoiTcg0f3lGSQwLjeTg"],"url":"https:\/\/www.couchbase.com\/blog\/es\/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":"Trabaja como Gerente Senior de Marketing de Producto en Couchbase, ayudando a llevar el conocimiento sobre los productos a la luz p\u00fablica, mientras que tambi\u00e9n apoya a nuestros equipos de campo con contenido valioso. Su pasi\u00f3n personal es todo lo geoespacial, habiendo trabajado en GIS durante la mitad de su carrera. Ahora la IA y la b\u00fasqueda vectorial son lo primero en lo que piensa."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/11742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/75185"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=11742"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/11742\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/11851"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=11742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=11742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=11742"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=11742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}