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 le...
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.
Índice
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és de HTTP
Jugar al ping-pong con los eventos
Programar detectores de eventos dinámicamente
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
19. El módulo Buffer
Qué son los datos binarios
De binario a texto
El sistema binario y Node.js
¿Qué son los búfer en Node.js?
Escribir en un búfer
Añadir elementos a los búfer
Copiar un búfer
Modificar cadenas en los búfer
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
20. El módulo Stream
Qué son los stream
Stream de lectura
Stream de escritura
Conectar dos stream
Hacer streaming de mp3
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
Parte VI. Más desarrollo en Node.js
21. CoffeeScript
Qué es CoffeeScript
Instalar y ejecutar CoffeeScript
Por qué utilizar un precompilador
Propiedades de CoffeeScript
Mínima sintaxis
Condiciones y comparaciones
Bucles
Cadenas
Objetos
Clases, herencias y la clave super
Depurar CoffeeScript
Reacciones contrarias a CoffeeScript
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
22. Crear módulos Node.js
¿Por qué crear módulos?
Los módulos Node.js más populares
El archivo package.json
La estructura de carpetas
Desarrollar y probar el módulo
Añadir un ejecutable
Programación orientada a objetos o programación basada en prototipos
Compartir código desde GitHub
Utilizar Travis CI
Publicar en npm
Promocionar nuestro módulo
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
23. Crear Middleware con Connect
Qué es Middleware
Middleware en Connect
Control de acceso con Middleware
Limitar el acceso a partir de la dirección IP
Forzar a los usuarios a trabajar con único dominio
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
24. Utilizar Node.js con Backbone.js
Qué es Backbone.js
Cómo funciona Backbone.js
Una vista de Backbone.js
Utilizar Backbone.js para crear registros
Resumen
Preguntas y respuestas
Ejercicios
Preguntas
Respuestas
Actividades
Índice alfabético