Presentación de Couchbase Node.js SDK 3.0 Alpha

Uno de los retos a la hora de escribir software utilizado por un gran número de desarrolladores es mantener API estables y compatibles entre sí. A veces, esta necesidad de compatibilidad puede arrinconarnos y limitar nuestra capacidad de implementar nuevas funciones interesantes. En vista de ello, me complace anunciar el lanzamiento de las versiones Alpha de nuestro SDK Node.js 3.0. Este importante salto de versión nos permite centrarnos de nuevo en la construcción de potentes APIs que aprovechen al máximo las nuevas características disponibles en ECMAScript 6 e integren de forma más intuitiva el amplio conjunto de características de Couchbase en Node.js. También tuvimos la oportunidad de aprovechar las lecciones aprendidas durante los últimos 4 años del SDK 2.0 y construir APIs más preparadas para el futuro que nos permitirán evolucionar con el lenguaje y las características del servidor a lo largo de la vida de esta nueva generación de SDK. Ahora que ya sabes cuáles eran nuestros objetivos, hablemos un poco de los cambios resultantes.

Introducción de Promesas y Async/Await

La versión 3.0 del SDK de Node.js introduce soporte integrado para Promises a través de las APIs, esto se presta bien para escribir código no-bloqueante escrito en serie usando las nuevas características Async/Await introducidas en ECMAScript 6. Todos los métodos soportan ahora tanto Promises como el patrón callback nativo del código Javascript más antiguo. Además, todos los emisores de eventos han sido mejorados con soporte para promesas. En el caso de las diversas interfaces de consulta dentro del SDK, esto le permite elegir en cada caso si desea procesar los datos sobre la marcha, o simplemente esperar y procesar todo el conjunto de resultados a la vez.

Inicialización del clúster y los cubos en SDK 3.0

Al igual que en SDK 2.0, los objetos Cluster y Bucket están de vuelta en SDK 3.0, cada uno representando sus equivalencias de servidor. La conexión a un clúster se realiza de forma similar a SDK 2.0, aunque los parámetros y el patrón de autenticación se han mejorado:

Al igual que en SDK 2.0, los objetos Cluster son objetos de gestión de recursos de larga duración, cuya vida se extiende generalmente desde el inicio hasta el cierre de la aplicación. A partir de esta nueva generación de SDKs, el resto de tus objetos pueden ser de vida corta, o mantenerse sin tener ninguna penalización de rendimiento. El SDK almacenará internamente en caché objetos bucket, objetos collection, etc. en tu nombre.

Las nuevas API de KV para Couchbase Server 6.5

Todas las operaciones clave/valor existen ahora en el nivel de las colecciones, que siempre serán miembros de exactamente un ámbito. En el caso de una versión del Servidor que no soporte colecciones, tendrá acceso a la colección por defecto que funcionará exactamente como lo hacían nuestros buckets en el pasado. He aquí un ejemplo de acceso a la Colección por defecto y luego escribir y leer algunos datos con ella.

Ámbito y colecciones con el modo Vista previa para desarrolladores

Como parte de la próxima versión de Server 6.5, hemos introducido la posibilidad de activar un modo de vista previa para desarrolladores que expone algunas de las próximas características que aún están en desarrollo. Activar la característica de Colecciones te permite acceder a una característica que representa el futuro del acceso a datos con Couchbase Server 6.5. Collections te permite dividir un Bucket en múltiples Scopes y Collections lógicos. Esto sustituye al requisito de las primeras versiones de Couchbase Server de añadir un campo especial "type" que designaba una especie de agrupación de documentos por nombre que podían ser consultados independientemente dentro de un Bucket. Creo que encontrarás que es un modelo de programación mucho más intuitivo y te permitirá mantener tus datos mejor organizados. Aquí tienes un ejemplo:

Las nuevas API de consulta

N1QL, al igual que Analytics y FTS, se consideran de ámbito "global" en el sentido de que una consulta puede hacer referencia a varios Buckets. Inicialmente en el SDK 2.0, las consultas N1QL tenían como ámbito el Bucket y más tarde se añadieron al Cluster. En SDK 3.0 actualmente sólo se puede consultar desde el objeto Cluster.

En general, todos los servicios (Query, FTS y Analytics) tienen una API pública muy similar a la del SDK 2.0. Sin embargo, por motivos de coherencia, todos los campos obligatorios se han añadido como parámetros en el lado izquierdo y los parámetros opcionales se han consolidado en un bloque o estructura de "opciones" en el lado derecho. Observará que esto continúa en todo el SDK y mejora enormemente la coherencia de nuestras API.

Conseguir la liberación

Para instalar la versión alfa del SDK de Node.js 3.0, basta con utilizar npm como se haría normalmente, especificando la versión concreta al realizar la instalación.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Brett Lawson, Ingeniero de Software Principal, Couchbase

Brett Lawson es Ingeniero de Software Principal en Couchbase. Brett es responsable del diseño y desarrollo de los clientes Node.js y PHP de Couchbase, además de participar en el diseño y desarrollo de la biblioteca C, libcouchbase.

1 Comentarios

  1. Gracias Nice Brett para este post. Estamos buscando Promesas y Async / espera de apoyo en NodeJS. ¿Hay algún plan cuando esta característica disponible para la producción?

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.