Prefacio

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

A quién va dirigido este libro

Este libro está dirigido a programadores que quieran crear aplicaciones web (sitios web tradicionales; aplicaciones de una sola página con React, Angular o Vue; API REST; o cualquier cosa intermedia) utilizando JavaScript, Node y Express. Uno de los aspectos emocionantes del desarrollo de Node es que ha atraído a todo un nuevo público de programadores. La accesibilidad y flexibilidad de JavaScript han atraído a programadores autodidactas de todo el mundo. En ningún momento de la historia de la informática la programación ha sido tan accesible. El número y la calidad de los recursos en línea para aprender a programar (y obtener ayuda cuando te atasques) es realmente asombroso e inspirador. Así que a esos nuevos programadores (posiblemente autodidactas), les doy la bienvenida.

Luego, por supuesto, están los programadores como yo, que llevan tiempo en esto. Como muchos programadores de mi época, empecé con ensamblador y BASIC y pasé por Pascal, C++, Perl, Java, PHP, Ruby, C, C# y JavaScript. En la universidad, conocí lenguajes más especializados, como ML, LISP y PROLOG. Muchos de estos lenguajes me resultan cercanos y queridos, pero en ninguno de ellos veo tanta promesa como en JavaScript. Así que también escribo este libro para programadores como yo, que tienen mucha experiencia y quizá una visión más filosófica de tecnologías específicas.

No es necesario tener experiencia con Node, pero sí con JavaScript. Si eres nuevo en programación, te recomiendo Codecademy. Si eres un programador intermedio o experimentado, te recomiendo mi propio libro, Aprender JavaScript, 3ª Edición (O'Reilly). Los ejemplos de este libro pueden utilizarse con cualquier sistema en el que funcione Node (que abarca Windows, macOS y Linux, entre otros). Los ejemplos están orientados a usuarios de la línea de comandos (terminal), por lo que debes estar familiarizado con el terminal de tu sistema.

Y lo que es más importante, este libro es para programadores que están entusiasmados. Entusiasmados con el futuro de Internet y que quieren formar parte de él. Entusiasmados por aprender cosas nuevas, nuevas técnicas y nuevas formas de ver el desarrollo web. Si, querido lector, no estás entusiasmado, espero que lo estés cuando llegues al final de este libro....

Notas sobre la segunda edición

Fue una alegría escribir la primera edición de este libro, y a día de hoy estoy satisfecho de los consejos prácticos que pude incluir en él y de la calurosa respuesta de mis lectores. La primera edición se publicó justo cuando Express 4.0 salió de la versión beta, y aunque Express sigue estando en la versión 4.x, el middleware y las herramientas que acompañan a Express han experimentado grandes cambios. Además, el propio JavaScript ha evolucionado, e incluso la forma en que se diseñan las aplicaciones web ha sufrido un cambio tectónico (alejándose de la renderización pura del lado del servidor y acercándose a las aplicaciones de una sola página [SPA]). Aunque muchos de los principios de la primera edición siguen siendo útiles y válidos, las técnicas y herramientas específicas son casi completamente diferentes. Hace tiempo que debería haberse publicado una nueva edición. Debido al auge de las SPA, el enfoque de esta segunda edición también ha cambiado para hacer más hincapié en Express como servidor de API y activos estáticos, e incluye un ejemplo de SPA.

Cómo está organizado este libro

El Capítulo1 y el Capítulo 2 te presentarán Node y Express y algunas de las herramientas que utilizarás a lo largo del libro. En el Capítulo 3 y el Capítulo 4, empezarás a utilizar Express y construirás el esqueleto de un sitio web de muestra que se utilizará como ejemplo a lo largo del resto del libro.

El Capítulo5 trata de las pruebas y el control de calidad, y el Capítulo 6 cubre algunas de las construcciones más importantes de Node y cómo Express las amplía y utiliza. El Capítulo 7 trata de las plantillas (mediante Handlebars), que sientan las bases para crear sitios web útiles con Express. El Capítulo 8 y el Capítulo 9 cubren las cookies, las sesiones y los manejadores de formularios, completando lo que necesitas saber para construir sitios web funcionales básicos con Express.

El Capítulo 10 profundiza en el middleware, un concepto central en Express. El Capítulo 11 explica cómo utilizar el middleware para enviar correo electrónico desde el servidor y analiza cuestiones de seguridad y diseño inherentes al correo electrónico.

El capítulo 12 ofrece una vista previa de los aspectos relacionados con la producción. Aunque a estas alturas del libro no tengas toda la información que necesitas para construir un sitio web listo para producción, pensar ahora en la producción puede ahorrarte grandes dolores de cabeza en el futuro.

El capítulo 13 trata sobre la persistencia, centrándose en MongoDB (una de las principales bases de datos de documentos) y PostgreSQL (un popular sistema de gestión de bases de datos relacionales de código abierto).

El Capítulo14 entra en los detalles del enrutamiento con Express (cómo se asignan las URL al contenido), y el Capítulo 15 se desvía hacia la escritura de APIs con Express. El Capítulo 17 cubre los detalles de servir contenido estático, centrándose en maximizar el rendimiento.

El Capítulo 18 trata de la seguridad: cómo incorporar autenticación y autorización a tu aplicación (centrándose en el uso de un proveedor de autenticación de terceros), y cómo ejecutar tu sitio sobre HTTPS.

El Capítulo 19 explica cómo integrarse con servicios de terceros. Se utilizan ejemplos como Twitter, Google Maps y el Servicio Meteorológico Nacional de EEUU.

El Capítulo 16 toma lo que hemos aprendido sobre Express y lo utiliza para refactorizar el ejemplo en ejecución como una SPA, con Express como servidor backend que proporciona la API que creamos en el Capítulo 15.

Los capítulos20 y 21 te preparan para el gran día: el lanzamiento de tu sitio web. Abarcan la depuración, para que puedas eliminar cualquier defecto antes del lanzamiento, y el proceso de puesta en marcha. El Capítulo 22 habla de la siguiente fase importante (y a menudo olvidada): el mantenimiento.

El libro concluye con el Capítulo 23, que te indica recursos adicionales, por si quieres ampliar tu formación sobre Node y Express, y dónde puedes acudir para obtener ayuda.

Ejemplo de sitio web

A partir del Capítulo 3, se utilizará un ejemplo a lo largo de todo el libro: el sitio web de Meadowlark Travel. Escribí la primera edición justo después de volver de un viaje a Lisboa, y tenía los viajes en la cabeza, así que el sitio web de ejemplo que elegí es el de una empresa de viajes ficticia de mi estado natal, Oregón (la alondra de los prados es el pájaro cantor del estado de Oregón). Meadowlark Travel permite a los viajeros ponerse en contacto con "guías turísticos aficionados" locales, y se asocia con empresas que ofrecen alquiler de bicicletas y scooters y excursiones locales, centrándose en el ecoturismo.

Como cualquier ejemplo pedagógico, el sitio web de Meadowlark Travel es artificioso, pero es un ejemplo que abarca muchos de los retos a los que se enfrentan los sitios web del mundo real: integración de componentes de terceros, geolocalización, comercio electrónico, rendimiento y seguridad.

Como este libro se centra en la infraestructura de backend, el sitio web de ejemplo no estará completo; simplemente sirve como ejemplo ficticio de un sitio web del mundo real para dar profundidad y contexto a los ejemplos. Es de suponer que estás trabajando en tu propio sitio web, y puedes utilizar el ejemplo de Meadowlark Travel como plantilla para él.

Convenciones utilizadas en este libro

En este libro se utilizan las siguientes convenciones tipográficas:

Cursiva

Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.

Constant width

Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.

Constant width bold

Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.

Constant width italic

Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.

Consejo

Este elemento significa un consejo o sugerencia.

Nota

Este elemento significa una nota general.

Advertencia

Este elemento indica una advertencia o precaución.

Utilizar ejemplos de código

El material complementario (ejemplos de código, ejercicios, etc.) se puede descargar en https://github.com/EthanRBrown/web-development-with-node-and-express-2e.

Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir un CD-ROM de ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.

Agradecemos, pero no exigimos, la atribución. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo "Desarrollo Web con Node y Express, Segunda Edición por Ethan Brown (O'Reilly). Copyright 2019 Ethan Brown, 978-1-492-05351-4".

Si crees que el uso que haces de los ejemplos de código queda fuera del uso justo o del permiso aquí concedido, no dudes en ponerte en contacto con nosotros en

Aprendizaje en línea O'Reilly

Nota

Durante casi 40 años, O'Reilly Media ha proporcionado formación, conocimientos y perspectivas sobre tecnología y negocios para ayudar a las empresas a alcanzar el éxito.

Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos, conferencias y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita http://oreilly.com.

Cómo contactar con nosotros

Dirige tus comentarios y preguntas sobre este libro a la editorial:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Norte
  • Sebastopol, CA 95472
  • 800-998-9938 (en Estados Unidos o Canadá)
  • 707-829-0515 (internacional o local)
  • 707-829-0104 (fax)

Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/web_dev_node_express_2e.

Para hacer comentarios o preguntas técnicas sobre este libro, envía un correo electrónico a

Para más información sobre nuestros libros, cursos, conferencias y noticias, consulta nuestro sitio web en http://www.oreilly.com.

Encuéntranos en Facebook: http://facebook.com/oreilly

Síguenos en Twitter: http://twitter.com/oreillymedia

Míranos en YouTube: http://www.youtube.com/oreillymedia

Agradecimientos

Muchas personas de mi vida han contribuido a hacer realidad este libro; no habría sido posible sin la influencia de todas las personas que han influido en mi vida y han hecho de mí lo que soy hoy.

Me gustaría empezar dando las gracias a todo el mundo en Pop Art: mi tiempo en Pop Art no sólo me ha proporcionado una renovada pasión por la ingeniería, sino que he aprendido mucho de todo el mundo allí, y sin su apoyo, este libro no existiría. Estoy agradecida a Steve Rosenbaum por crear un lugar de trabajo inspirador, y a Del Olds por traerme a bordo, hacerme sentir bienvenida y ser un líder honorable. Gracias a Paul Inman por su apoyo inquebrantable y su actitud inspiradora hacia la ingeniería, y a Tony Alferez por su cálido apoyo y por ayudarme a sacar tiempo para escribir sin afectar al Pop Art. Por último, gracias a todos los grandes ingenieros con los que he trabajado, que me mantienen alerta: John Skelton, Dylan Hallstrom, Greg Yung, Quinn Michaels, CJ Stritzel, Colwyn Fritze-Moor, Diana Holland, Sam Wilskey, Cory Buckley y Damion Moyer.

Tengo una gran deuda de gratitud con mi equipo actual de Value Management Strategies, Inc. He aprendido mucho sobre el aspecto empresarial del software de Robert Stewart y Greg Brink, y mucho sobre comunicación, cohesión y eficacia del equipo de Ashley Carson (gracias por tu apoyo inquebrantable, Scratch Chromatic). Terry Hays, Cheryl Kramer y Eric Trimble, ¡gracias a todos por vuestro duro trabajo y apoyo! Y gracias a Damon Yeutter, Tyler Brenton y Brad Wells por su trabajo crítico en el análisis de requisitos y la gestión de proyectos. Y lo que es más importante, gracias a los desarrolladores con talento y dedicación que han trabajado conmigo -sin descanso- en VMS: Adam Smith, Shane Ryan, Jeremy Loss, Dan Mace, Michael Meow, Julianne Soifer, Matt Nakatani y Jake Feldmann.

¡Gracias a todos mis compañeros de la Escuela de Rock! Qué viaje tan loco ha sido y qué salida creativa tan alegre. Un agradecimiento especial a los instructores que comparten su pasión y conocimientos musicales: Josh Thomas, Amanda Sloane, Dave Coniglio, Dan Lee, Derek Blackstone y Cory West. ¡Gracias a todos por darme la oportunidad de ser una estrella del rock!

Zach Mason, gracias por ser una inspiración para mí. Puede que este libro no seaLos libros perdidos de la Odisea, pero es mío, y no sé si me habría atrevido tanto sin tu ejemplo.

Elizabeth y Ezra, gracias por los regalos que ambos me habéis dado. Os querré siempre.

Se lo debo todo a mi familia. No podría haber deseado una educación mejor y más cariñosa que la que ellos me dieron, y veo que su excepcional crianza se refleja también en mi hermana.

Muchas gracias a Simon St. Laurent por darme esta oportunidad, y a Angela Rufino (segunda edición) y Brian Anderson (primera edición) por su edición constante y alentadora. Gracias a todos en O'Reilly por su dedicación y pasión. Gracias a Alejandra Olvera-Novack, Chetan Karande, Brian Sletten, Tamas Piros, Jennifer Pierce, Mike Wilson, Ray Villalobos y Eric Elliot por sus minuciosas y constructivas revisiones técnicas.

Katy Roberts y Hanna Nelson me proporcionaron comentarios y consejos inestimables sobre mi propuesta "por encima del travesaño" que hicieron posible este libro. ¡Muchas gracias a las dos! Gracias a Chris Cowell-Shah por sus excelentes comentarios sobre el capítulo de GC.

Por último, gracias a mis queridos amigos, sin los cuales seguramente me habría vuelto loca: Byron Clayton, Mark Booth, Katy Roberts y Kimberly Christensen. Os quiero a todos.

Get Desarrollo Web con Node y Express, 2ª Edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.