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?
Convenciones
Código fuente
Parte I. Empezamos
1. Presentación de Node.js
¿Qué es Node.js?
Qué se puede hacer con Node.js
Instalar y crear nuestro primer programa Node.js
Verificar que Node.js se ha instalado correctamente
Crear nuestro programa Hello World en Node.js
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
2. npm, el gestor de paquetes de Node
¿Qué es npm?
Instalar npm
Instalar módulos
Utilizar los módulos
Cómo localizar módulos
Fuentes oficiales
Fuentes no oficiales
Instalación local y global
Instalación local
Instalación global
Cómo localizar la documentación de un módulo
Utilizar package.json para especificar todos los accesorios
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
3. Para qué se utiliza Node.js
Para qué se ha diseñado Node.js
Comprender I/O
Trabajar con la entrada de datos
La entrada y salida de datos en una red es impredecible
Los humanos son impredecibles
Gestionar los comportamientos impredecibles
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
4. Callback
Qué es una callback
La anatomía de callback
Cómo utiliza Node.js las callback
Código síncrono y asíncrono
El bucle de eventos
Resumen
Preguntas y respuestas 73
Ejercicios
Preguntas
Respuestas
Actividades
Parte II. Desarrollar sitios Web básicos con Node.js
5. HTTP
Qué es HTTP
Crear servidores HTTP con Node.js
Un servidor básico
Añadir cabeceras
Comprobar las cabeceras de las respuestas
La extensión HTTP Headers para Chrome
Complemento Live HTTP Headers para Firefox
cURL
Redireccionar en Node.js
Atender diferentes peticiones
Crear clientes HTTP con Node.js
Resumen 87
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
6. Presentación de Express
¿Qué es Express?
¿Por qué utilizar Express?
Instalar Express
Crear un sitio básico con Express
Explorar Express
app.js
node_modules
package.json
public
routes
views
Presentación de Jade
Utilizar Jade para definir la estructura de una página
Publicar datos con Jade
Variables
Bucles
Condicionales
Código JavaScript
Elementos comunes
Mixin
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
7. Más sobre Express
El enrutamiento en aplicaciones Web
Cómo funciona el enrutamiento en Express
Añadir una ruta GET
Añadir una ruta POST
Utilizar parámetros en las rutas
Cómo facilitar el mantenimiento de las rutas
Dibujar una vista
Utilizar variables locales
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
8. Datos persistentes
¿Qué son los datos persistentes?
Escribir datos en un archivo
Leer datos desde un archivo
Leer variables de entorno
Utilizar bases de datos
Bases de datos relacionales
Bases de datos NoSQL
Utilizar MongoDB con Node.js
Instalar MongoDB
Conectar con MongoDB
Definir documentos
Incluir Twitter Bootstrap
La vista Index
La vista Create
La vista Edit
Borrar tareas
Añadir mensajes flash
Validar la entrada de datos
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
Parte III. Depurar, probar y publicar
9. Depurar aplicaciones Node.js
Depurar
El módulo STDIO
Depurar con Node.js
Node Inspector
Un 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
Publicar la aplicación en Heroku
Cloud Foundry
Registrarse en Cloud Foundry
Preparar nuestra aplicación para Cloud Foundry
Publicar la aplicación con Cloud Foundry
Nodester
Registrarse en Nodester
Preparar nuestra aplicación para Nodester
Publicar nuestra aplicación en Nodester
Otros proveedores PaaS
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
Parte IV. Otros servicios para Node.js
12. Presentación de Socket.IO
Un momento para algo completamente diferente
Una pequeña historia sobre la Web dinámica
Socket.IO
Un ejemplo básico de Socket.IO
Enviar datos del servidor a los clientes
Difundir datos a los clientes
Datos bidireccionales
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
13. Un servidor Socket.IO de chat
Express y Socket.IO
Añadir apodos
Enviar el nick al servidor
Gestionar la lista de apodos
Utilizar retrollamadas para el proceso de validación
Difundir la lista de apodos
Añadir mensajería
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
14. Un cliente streaming de Twitter
Las API streaming
Registrarse en Twitter
Utilizar la API de Twitter con Node.js
Analizar los datos recibidos
Publicar datos en el navegador
Crear nuestra aplicación Lovehateoneter
Añadir un gráfico en tiempo real
Resumen
Preguntas y Respuestas
Ejercicios
Preguntas
Respuestas
Actividades
15. API JSON
API
JSON
Utilizar Node.js para enviar datos JSON
Crear JSON a partir de objetos JavaScript
Consumir datos JSON con Node.js
Crear un API JSON con Node.js
Enviar datos como JSON en Express
Construir la aplicación
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
Parte V. Explorar la API de Node.js
16. El módulo Process
Qué son los procesos
Errores y finalización de un proceso
Procesos y señales
Enviar señales a los procesos
Utilizar Node.js para crear script en Unix
Entregar argumentos a los script
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
17. El módulo Process Child
¿Qué es un proceso hijo?
Eliminar un proceso hijo
Establecer una comunicación con un proceso hijo
El módulo Cluster
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
18. El módulo Events
Qué son los eventos
Ver cómo funcionan los eventos a travé
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.