La posibilidad de utilizar JavaScript en el servidor permite añadir nuevas funcionalidades y superar nuevos retos dentro de la programación Web. Pero Node.js es mucho más. Es un lenguaje que ha rediseñado la programación orientada a redes para adaptarla a la Web moderna, donde una aplicación puede leer y escribir datos desde diferentes sitios y trabajar con millones de usuarios. Node.js está centrada en la velocidad y en la escalabilidad. Es capaz de trabajar con miles de usuarios de forma simultánea sin requerir una fuerte inversión en hardware. Node.js cuenta con miles de seguidores y compañías como eBay, LinkedIn y Microsoft ya trabajan con él. Si tiene interés en crear aplicaciones que vayan a trabajar con muchos usuarios, gestionar datos de una red o necesiten dar respuesta en tiempo real, verá que Node.js es la herramienta ideal.Agradecimientos Sobre el autor Introducción ¿Por qué debería leer este libro? ¿Por qué debería aprender Node.js?¿Cómo está organizado este libro?ConvencionesCódigo fuenteParte I. Empezamos1. Presentación de Node.js¿Qué es Node.js?Qué se puede hacer con Node.jsInstalar y crear nuestro primer programa Node.jsVerificar que Node.js se ha instalado correctamenteCrear nuestro programa Hello World en Node.jsResumenPreguntas y respuestasEjerciciosPreguntasRespuestasActiv idades 2. npm, el gestor de paquetes de Node¿Qué es npm?Instalar npmInstalar módulosUtilizar los módulosCómo localizar módulosFuentes oficialesFuentes no oficialesInstalación local y globalInstalación localInstalación globalCómo localizar la documentación de un móduloUtilizar package.json para especificar todos los accesoriosResumenPreguntas y respuestasEjerciciosPreguntasRespuestasAc tividades 3. Para qué se utiliza Node.jsPara qué se ha diseñado Node.jsComprender I/OTrabajar con la entrada de datosLa entrada y salida de datos en una red es impredecibleLos humanos son impredeciblesGestionar los comportamientos impredeciblesResumenPregunt as y respuestasEjerciciosPreguntasRespuestasActividades4. CallbackQué es una callbackLa anatomía de callbackCómo utiliza Node.js las callbackCódigo síncrono y asíncronoEl bucle de eventosResumenPreguntas y respuestas73 EjerciciosPreguntasRespuestasActividades Parte II. Desarrollar sitios Web básicos con Node.js5. HTTPQué es HTTPCrear servidores HTTP con Node.jsUn servidor básicoAñadir cabecerasComprobar las cabeceras de las respuestasLa extensión HTTP Headers para ChromeComplemento Live HTTP Headers para FirefoxcURLRedireccionar en Node.jsAtender diferentes peticionesCrear clientes HTTP con Node.jsResumen87 Preguntas y respuestasEjerciciosPreguntasRespuestasActividades 6. Presentación de Express¿Qué es Express?¿Por qué utilizar Express?Instalar ExpressCrear un sitio básico con ExpressExplorar Expressapp.jsnode_modulespackage.jsonpublicroutes viewsPresentación de JadeUtilizar Jade para definir la estructura de una páginaPublicar datos con JadeVariablesBuclesCondicionalesCódigo JavaScriptElementos comunesMixinResumenPreguntas y respuestasEjerciciosPreguntasRespuestasActividades 7. Más sobre ExpressEl enrutamiento en aplicaciones WebCómo funciona el enrutamiento en ExpressAñadir una ruta GETAñadir una ruta POSTUtilizar parámetros en las rutasCómo facilitar el mantenimiento de las rutasDibujar una vistaUtilizar variables localesResumenPreguntas y respuestasEjerciciosPreguntasRespuestasActividades8. Datos persistentes¿Qué son los datos persistentes? Escribir datos en un archivoLeer datos desde un archivoLeer variables de entornoUtilizar bases de datosBases de datos relacionalesBases de datos NoSQLUtilizar MongoDB con Node.jsInstalar MongoDBConectar con MongoDBDefinir documentosIncluir Twitter BootstrapLa vista IndexLa vista CreateLa vista EditBorrar tareasAñadir mensajes flashValidar la entrada de datosResumenPreguntas y respuestasEjerciciosPreguntas RespuestasActividades Parte III. Depurar, probar y publicar 9. Depurar aplicaciones Node.js Depurar El módulo STDIO Depurar con Node.js Node InspectorUn apunte sobre las pruebas Resumen Preguntas y respuestas Ejercicios Preguntas Respuestas Actividades 10. Probar aplicaciones Node.js ¿Por qué hacer pruebas? El módulo assert Herramientas de prueba desarrolladas por terceros Nodeunit Desarrollo basado en el comportamiento Vows Mocha Resumen Preguntas y respuestas Ejercicios Preguntas Respuestas Actividades 11. Publicar aplicaciones Node.js Listos para publicar Hosting en la nube Heroku Registrarse en Heroku Preparar nuestra aplicación para Heroku&