Node.js: gestores de contenidos desarrollados con el entorno JavaScript
Cualquier proyecto digital en el sector editorial exige un sistema de gestión de contenidos. Algunas empresas optan por utilizar CMS gratuitos como WordPress, Drupal o Joomla. Otras, en cambio, prefieren el desarrollo de sus propios gestores, normalmente medios de comunicación, en busca de una mayor personalización, robustez y tal vez su comercialización externa. Hoy existen varios CMS desarrollados en Node.js, el entorno de desarrollo JavaScript por la capa del servidor, que son una opción más del mercado.
Entre los gestores basados en Node.js y tecnología JavaScript, destacan esencialmente cuatro ejemplos: KeystoneJS, Hatch.js, Apostrophe y Pencilblue. Todos ellos pueden ser una alternativa interesante gracias, en gran medida, al aumento de la influencia de esta sintaxis en el desarrollo global de proyectos digitales, no solo en la incorporación de interactividad a la interfaz de usuario, sino también en otros campos como back-end, servidores o bases de datos.
KeystoneJS se podría definir como un marco en Node.js para el desarrollo de página webs de contenidos. Está construido no solo con Node.js, sino también con Express, el framework para desarrollo de back-end específico para Node.js y MongoDB, el servicio de gestión de bases de datos en JavaScript. Es por tanto un CMS desarrollado enteramente en este lenguaje de programación en auge.
Es evidente, pero siempre es bueno tenerlo en cuenta, que la instalación de KeystoneJS tiene dos dependencias obvias, una es Node.js y la otra es MongoDB. Por tanto la instalación del entorno y la base de datos son requisitos imprescindibles para usar este editor de webs y aplicaciones. La descarga y configuración de ambas es sencilla, hay tutoriales disponibles en sus páginas.
También son necesarias algunas otras condiciones: el desarrollador o diseñador debe dominar la programación en JavaScript y es recomendable conocer Jade, el sistema de plantillas usado en Node.js y basado también en esta sintaxis, y LESS, la extensión de las hojas de estilo CSS. Casi cualquier profesional JavaScript está al corriente de la existencia de ambos proyectos.
– Instalar el generador de KeystoneJS (este es su código en GitHub), desarrollado por el equipo de Yeoman. Para hacerlo, usar este comando: $ npm install -g generator-keystone
– Crear una carpeta para el proyecto. Es necesario crear el directorio donde el desarrollador quiera tener el proyecto web o su aplicación. $ mkdir my-test-project
– Confirmar que uno está dentro de su proyecto: $ cd my-test-project
– Ejecutar el generador de KeystoneJS: comando $ yo keystone.
– Paso final. Ejecución del comando $ node keystone y apertura del servidor local de prueba http://localhost:3000/ en el navegador.
Las principales características de KeystoneJS:
– Es gratuito y está bajo licencia MIT.
– Está basado en una arquitectura MVC (Modelo-Vista-Controlador).
– Sistema propio de gestión de usuarios registrados.
– Rutas dinámicas.
– Se puede usar Jade como sistema de plantillas, pero también otras opciones que puedan ser más del gusto del desarrollador. Estas plantillas son totalmente personalizables, con Jade o sin él.
– PaaS (Plataforma como Servicio) para soluciones de hosting.
– Integración con el correo electrónico y servicios como MailChimp.
Hatch.js sería una de las alternativas del mercado a KeystoneJS, el CMS en Node.js más utilizado por la comunidad de desarrolladores. Es una herramienta de código abierto, flexible y escalable. Hatch.js es un marco de creación de páginas web que combina la gestión de contenidos con el uso de redes sociales para su distribución, personalizable a partir de widgets. Además de Node.js, Hatch.js está construido sobre Redis, una solución de código abierto para el almacenamiento de datos NoSQL en memoria.
Algunas de las características que lo definen:
– Es un CMS rápido y escalable, algo apreciado entre los desarrolladores. El sistema de base de datos NoSQL basado en un modelo clave-valor permite que el contenido, incluso en aquellas páginas con una gran cantidad de información dinámica, cargue rápido. Según los desarrolladores de Hatch,js, ese tiempo de respuesta es inferior a 0,05 segundos, incluso sin necesidad de usar ninguna caché.
– Solución basada en plugins. Las características de Hatch.js están escritas con plugins en la parte superior de la plataforma. Si un desarrollador quiere implementar nuevas funcionalidades, solo necesita codificar su propio plugin. Para ello se utiliza CompoundJS, el marco de desarrollo Modelo-Vista-Controlador para Node.js.
– Todas las posibilidades con respecto a las plantillas. Hatch.js integra los temas de Bootstrap, el marco de desarrollo de Twitter para el diseño de sitios web responsive. Otras opciones serían la de crear una plantilla propia o bien programar el proyecto desde cero con HTML y CSS.
– Dispone de todas las fuentes de Google Webfonts.
– Se puede usar LESS para las hojas de estilos CSS.
– La licencia comercial tiene un coste de casi 730 euros al mes.
Apostrophe es un CMS que apuesta por la sencillez en la creación de contenido. Al igual que los dos gestores anteriores, está basado en Node.js para el back-end y MongoDB para la base de datos.
Como motor de plantillas en JavaScript, en vez de usar Jade, Apostrophe apuesta por Nunjucks. Inspirado en jinja2, el motor de plantillas más poderoso para Python, Nunjucks hace el precompilado de plantillas directamente en cualquier navegador moderno y es totalmente escalable con el uso de extensiones.
A parte de Node.js y MongoDB, otras de las dependencias de Apostrophe es ImageMagick, una herramienta de creación, edición y conversión de imágenes en todos los formatos (jpeg, png, gif, tiff, svg…). Es una especie de Photoshop incorporado en el CMS: permite retocar colores, curvas de luz, cambiar el tamaño, retocar el encuadre, voltear las imágenes, aplicar efectos especiales… ImageMagick es un software de código abierto con licencia Apache 2.0.
Pencilblue es un CMS basado en Node.js, MongoDB y Redis para la creación de proyectos editoriales responsive. Para ese diseño adaptado a dispositivos móviles como teléfonos y relojes inteligentes y tabletas, los desarrolladores que utilicen Pencilblue contarán con la integración de Bootstrap; AngularJS, el marco de desarrollo para front-end basado en el paradigma Modelo-Vista-Controlador (MVC); y jQueryUI, el conjunto de plantillas y widgets pensado para el diseño de la interfaz de usuario de sitios web.
Banco Bilbao Vizcaya Argentaria, S.A. titular de este portal utiliza cookies y/o tecnologías similares propias y de terceros para fines técnicos, de personalización, analíticos, de publicidad comportamental o publicidad relacionada con tus preferencias sobre la base de un perfil elaborado a partir de tus hábitos de navegación (por ejemplo, páginas visitadas). Si deseas obtener información más detallada, consulta nuestra Política de Cookies.
Panel de configuración de cookies
Este es el configurador avanzado de cookies propias y de terceros. Aquí puedes modificar parámetros que afectarán directamente a tu experiencia de navegación en esta web.
Cookies técnicas (necesarias)
Estas cookies son importantes para darte acceso seguro a zonas con información personal o para reconocerte cuando inicias sesión.
Denominación
Titular
Duración
Finalidad
gobp.lang
BBVA
1 mes
Preferencia de idioma
aceptarCookies
BBVA
1 año
Configuración Cookies aceptadas
_abck
BBVA
1 año
Ayuda a protegerse contra los ataques de sitios web maliciosos
bm_sz
BBVA
4 horas
Ayuda a protegerse contra los ataques de sitios web maliciosos
ADRUM_BTs
Salesforce Marketing Cloud
Sesión
Requerido para la supervisión del servicio, inherente al SFMC
ADRUM_BT1
Salesforce Marketing Cloud
Sesión
Requerido para la supervisión del servicio, inherente al SFMC
ADRUM_BTa
Salesforce Marketing Cloud
Sesión
Requerido para la supervisión del servicio, inherente al SFMC
ADRUM_BT
Salesforce Marketing Cloud
Sesión
Requerido para la supervisión del servicio, inherente al SFMC
xt_0d95e
Salesforce Marketing Cloud
Sesión
Recordar las preferencias del usuario (si las hay)
__s9744cdb192d044faa1bf201d29fafd1e
Salesforce Marketing Cloud
Sesión
Recordar las preferencias del usuario (si las hay)
wpml_browser_redirect_test
WPML
Sesión
Traducción de textos del portal
wp-wpml_current_language
WPML
24 horas
Traducción de textos del portal
Cookies de Analítica
Permiten medir, de forma anónima, el número de visitas o la actividad. Gracias a ellas podemos mejorar constantemente tu experiencia de navegación.
Dispones de una mejora continua en la experiencia de navegación.
Con tu selección no podemos ofrecerte una mejora continua en la experiencia de navegación.
Denominación
Titular
Duración
Finalidad
AMCV_***
Adobe Analytics
Sesión
ID de visitante único que se usan en las soluciones de Marketing Cloud
AMCVS_***
Adobe Analytics
2 años
ID de visitante único que se usan en las soluciones de Marketing Cloud
demdex (safari)
Adobe Analytics
180 días
Crear y almacenar identificadores únicos y persistentes
sessionID
Adobe Analytics
Sesión
Cookie interna de Launch usada para identificar al usuario
gpv_URL
Adobe Analytics
Sesión
plugin Adobe Analytics: getPreviousValue Capturar el valor de una determinada variable en la siguiente vista de página, en este caso la prop1
gpv_level1
Adobe Analytics
Sesión
Cookie utilizada para almacenar el levl1 del DataLayer de la página anterior.
gpv_pageIntent
Adobe Analytics
Sesión
Cookie utilizada para almacenar el pageIntent de la página anterior.
gpv_pageName
Adobe Analytics
Sesión
Cookie utilizada para almacenar el pagename de la página anterior.
aocs
Adobe Analytics
Sesión
Cookie que almacena los primeros valores recogidos al inicio de un proceso.
TTC
Adobe Analytics
Sesión
Cookie usada para almacenar el tiempo transcurrido entre el evento App Page Visit y App Completed.
TTCL
Adobe Analytics
Sesión
Cookie usada para almacenar el tiempo transcurrido entre el evento LogIn y App Completed.
s_cc
Adobe Analytics
Sesión
Determinar si las cookies están activas
s_hc
Adobe Analytics
Sesión
Cookie usada por Adobe con propositos de analítica.
s_ht
Adobe Analytics
Sesión
Cookie usada por Adobe con propositos de analítica.
s_nr
Adobe Analytics
2 años
Determinar el número de visitas de usuario
s_ppv
Adobe Analytics
Persistente
plugin Adobe Analytics: getPercentPageViewed Determinar el procentaje de página que visualiza un usuario
s_sq
Adobe Analytics
Sesión
Funcionalidades ClickMap/ActivityMap
s_tp
Adobe Analytics
Sesión
Cookie usada por Adobe con propositos de analítica.
s_visit
Adobe Analytics
2 años
Cookie usada por Adobe para saber cunado una sesión se ha iniciado.
Cookies de Publicidad
Permiten que la publicidad que te mostramos sea personalizada y relevante para ti. Gracias a estas cookies no verás anuncios que no te interesen.
Dispones de una publicidad adaptada a ti y a tus preferencias.
Con tu selección pierdes la personalización de la publicidad, solo verás anuncios genéricos.
Denominación
Titular
Duración
Finalidad
OT2
VersaTag
90 días
Cookie de VersaTag usada para almacenar un id de usuario y el numero de visitas del usuario.
u2
VersaTag
90 días
Cookie de VersaTag en la que se almacena el ID del usuario
TargetingInfo 2
MediaMind
1 año
Cookie que sirve para asignar un número unico random que genera MediaMind.
Cookies de Personalización
Estas cookies están relacionadas con características generales como, por ejemplo, el navegador que utilizas.
Dispones de una experiencia y contenidos personalizados.
Con tu selección no podemos ofrecerte una navegación y contenidos personalizados.
Denominación
Titular
Duración
Finalidad
mbox
Adobe Target
9 días
Cookie usada por Adobe Target para hacer test de personalizacion de experencia del usuario.
Parece que estás navegando desde MéxicoEspañaArgentinaPerúColombiaBélgicaChileEEUUFranciaHong KongItaliaPortugalReino UnidoTurquíaUruguayVenezuelaAlemania, así que vamos a mostrarte el contenido personalizado para tu localización. Cambiar
Selecciona el país
Para poder acceder al área privada y sandbox correspondiente, selecciona el país de las APIs que quieres utilizar.
Preferencias de Navegación
Elige el país del que quieres que te mostremos su contenido por defecto.