Vorwort

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Für wen dieses Buch ist

Dieses Buch richtet sich an Programmierer/innen, die mit JavaScript, Node und Express Webanwendungen erstellen wollen (traditionelle Websites, Single-Page-Anwendungen mit React, Angular oder Vue, REST-APIs oder alles dazwischen). Einer der aufregenden Aspekte der Node-Entwicklung ist, dass sie ein ganz neues Publikum von Programmierer/innen angezogen hat. Die Zugänglichkeit und Flexibilität von JavaScript hat Autodidakten aus der ganzen Welt angezogen. Noch nie in der Geschichte der Informatik war das Programmieren so leicht zugänglich. Die Anzahl und Qualität der Online-Ressourcen zum Programmieren lernen (und um Hilfe zu bekommen, wenn du nicht weiterkommst) ist wirklich erstaunlich und inspirierend. Deshalb heiße ich alle neuen (möglicherweise autodidaktischen) Programmierer/innen herzlich willkommen.

Dann gibt es natürlich noch die Programmierer wie mich, die schon eine Weile dabei sind. Wie viele Programmierer meiner Zeit habe ich mit Assembler und BASIC angefangen und bin dann über Pascal, C++, Perl, Java, PHP, Ruby, C, C# und JavaScript gekommen. An der Universität lernte ich weitere Nischensprachen wie ML, LISP und PROLOG kennen. Viele dieser Sprachen liegen mir sehr am Herzen, aber in keiner dieser Sprachen sehe ich so viel Potenzial wie in JavaScript. Deshalb schreibe ich dieses Buch auch für Programmiererinnen und Programmierer wie mich, die viel Erfahrung und vielleicht eine eher philosophische Einstellung zu bestimmten Technologien haben.

Es ist keine Erfahrung mit Node notwendig, aber du solltest etwas Erfahrung mit JavaScript haben. Wenn du neu im Programmieren bist, empfehle ich dir Codecademy. Wenn du ein fortgeschrittener oder erfahrener Programmierer bist, empfehle ich dir mein eigenes Buch, Learning JavaScript, 3rd Edition (O'Reilly). Die Beispiele in diesem Buch können mit jedem System verwendet werden, auf dem Node funktioniert (u.a. Windows, macOS und Linux). Die Beispiele richten sich an Benutzer der Kommandozeile (Terminal), du solltest also mit dem Terminal deines Systems vertraut sein.

Das Wichtigste: Dieses Buch ist für Programmierer, die begeistert sind. Sie sind begeistert von der Zukunft des Internets und wollen ein Teil davon sein. Begeistert davon, neue Dinge, neue Techniken und neue Sichtweisen auf die Webentwicklung zu lernen. Wenn du, liebe Leserin, lieber Leser, noch nicht begeistert bist, wirst du es hoffentlich sein, wenn du am Ende dieses Buches angekommen bist....

Anmerkungen zur zweiten Auflage

Es war mir eine Freude, die erste Ausgabe dieses Buches zu schreiben, und ich freue mich bis heute über die praktischen Ratschläge, die ich darin unterbringen konnte, und über die herzliche Reaktion meiner Leserinnen und Leser. Die erste Ausgabe wurde veröffentlicht, als Express 4.0 aus der Beta-Phase herauskam. Zwar ist Express immer noch auf Version 4.x, aber die Middleware und die Tools, die mit Express zusammenarbeiten, haben sich stark verändert. Außerdem hat sich JavaScript selbst weiterentwickelt, und auch die Art und Weise, wie Webanwendungen entwickelt werden, hat eine tektonische Verschiebung erfahren (weg vom reinen serverseitigen Rendering und hin zu Single-Page-Anwendungen [SPAs]). Während viele der Prinzipien aus der ersten Ausgabe immer noch nützlich und gültig sind, haben sich die spezifischen Techniken und Werkzeuge fast vollständig verändert. Eine neue Ausgabe ist überfällig. Aufgrund des Aufstiegs der SPAs hat sich der Schwerpunkt dieser zweiten Ausgabe auch verschoben, um mehr Gewicht auf Express als Server für APIs und statische Assets zu legen, und sie enthält ein SPA-Beispiel.

Wie dieses Buch organisiert ist

Kapitel 1 und Kapitel 2 führen dich in Node und Express sowie in einige der Tools ein, die du im Laufe des Buches verwenden wirst. In Kapitel 3 und 4 fängst du an, Express zu benutzen und baust das Skelett einer Beispiel-Website, die im Rest des Buches als laufendes Beispiel verwendet wird.

In Kapitel 5 geht es um Testen und Qualitätssicherung und in Kapitel 6 um einige der wichtigsten Konstrukte von Node und wie sie von Express erweitert und genutzt werden. In Kapitel 7 geht es um Templating (mit Handlebars), das die Grundlage für die Erstellung nützlicher Websites mit Express bildet. In Kapitel 8 und 9 geht es um Cookies, Sessions und Formularhandler, um die Dinge abzurunden, die du wissen musst, um grundlegende funktionale Websites mit Express zu erstellen.

Kapitel 10 befasst sich mit Middleware, einem zentralen Konzept von Express. In Kapitel 11 wird erklärt, wie Middleware verwendet wird, um E-Mails vom Server aus zu versenden, und es werden Sicherheits- und Layoutfragen im Zusammenhang mit E-Mails erörtert.

Kapitel 12 bietet eine Vorschau auf die Produktionsbelange. Auch wenn du an dieser Stelle des Buches noch nicht alle Informationen hast, die du brauchst, um eine produktionsreife Website zu erstellen, kann dir das Nachdenken über die Produktion in der Zukunft große Kopfschmerzen ersparen.

In Kapitel 13 geht es um Persistenz, wobei der Schwerpunkt auf MongoDB (eine der führenden Dokumentendatenbanken) und PostgreSQL (ein beliebtes relationales Open-Source-Datenbankmanagementsystem) liegt.

Kapitel 14 befasst sich mit den Details des Routings mit Express (wie URLs auf Inhalte abgebildet werden), und Kapitel 15 macht einen Abstecher zum Schreiben von APIs mit Express. Kapitel 17 befasst sich mit den Details der Bereitstellung statischer Inhalte, wobei der Schwerpunkt auf der Maximierung der Leistung liegt.

In Kapitel 18 geht es um die Sicherheit: wie du Authentifizierung und Autorisierung in deine App einbaust (mit einem Schwerpunkt auf der Verwendung eines Authentifizierungsanbieters von Drittanbietern), und wie du deine Website über HTTPS betreibst.

Kapitel 19 erklärt, wie du Dienste von Drittanbietern integrieren kannst. Als Beispiele werden Twitter, Google Maps und der US National Weather Service genannt.

In Kapitel 16 wird das, was wir über Express gelernt haben, genutzt, um das laufende Beispiel als SPA umzugestalten, wobei Express als Backend-Server die API bereitstellt, die wir in Kapitel 15 erstellt haben.

Kapitel 20 und Kapitel 21 bereiten dich auf den großen Tag vor: den Start deiner Website. Sie befassen sich mit der Fehlersuche, damit du eventuelle Fehler vor dem Start ausmerzen kannst, und mit dem Prozess der Live-Schaltung. In Kapitel 22 geht es um die nächste wichtige (und oft vernachlässigte) Phase: die Wartung.

Das Buch schließt mit Kapitel 23, das dich auf zusätzliche Ressourcen verweist, falls du dich über Node und Express weiterbilden möchtest und wo du Hilfe bekommst.

Beispiel Website

Ab Kapitel 3 wird ein durchgehendes Beispiel im ganzen Buch verwendet: die Meadowlark Travel Website. Ich habe die erste Ausgabe geschrieben, nachdem ich gerade von einer Reise nach Lissabon zurückbekommen hatte und mir das Reisen nicht aus dem Kopf ging. Deshalb habe ich als Beispiel die Website eines fiktiven Reiseunternehmens in meinem Heimatstaat Oregon gewählt (die Western Meadowlark ist der Singvogel von Oregon). Meadowlark Travel ermöglicht es Reisenden, mit lokalen "Amateur-Reiseleitern" in Kontakt zu treten, und arbeitet mit Unternehmen zusammen, die Fahrräder und Roller vermieten und lokale Touren anbieten, wobei der Schwerpunkt auf Ökotourismus liegt.

Wie jedes pädagogische Beispiel ist auch die Meadowlark Travel-Website erfunden, aber sie ist ein Beispiel, das viele der Herausforderungen abdeckt, mit denen Websites in der realen Welt konfrontiert sind: Integration von Drittanbieterkomponenten, Geolokalisierung, E-Commerce, Leistung und Sicherheit.

Da der Schwerpunkt dieses Buches auf der Backend-Infrastruktur liegt, ist die Beispiel-Website nicht vollständig. Sie dient lediglich als fiktives Beispiel für eine reale Website, um den Beispielen Tiefe und Kontext zu verleihen. Vermutlich arbeitest du an deiner eigenen Website und kannst das Meadowlark Travel-Beispiel als Template dafür verwenden.

In diesem Buch verwendete Konventionen

In diesem Buch werden die folgenden typografischen Konventionen verwendet:

Kursiv

Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.

Constant width

Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.

Constant width bold

Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.

Constant width italic

Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.

Tipp

Dieses Element steht für einen Tipp oder eine Anregung.

Hinweis

Dieses Element steht für einen allgemeinen Hinweis.

Warnung

Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.

Code-Beispiele verwenden

Zusätzliches Material (Code-Beispiele, Übungen usw.) steht unter https://github.com/EthanRBrown/web-development-with-node-and-express-2e zum Download bereit .

Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Wenn du eine CD-ROM mit Beispielen aus den O'Reilly-Büchern verkaufst oder verteilst, ist eine Genehmigung erforderlich. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Erlaubnis erforderlich.

Wir schätzen die Namensnennung, verlangen sie aber nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Web Development with Node and Express, Second Edition von Ethan Brown (O'Reilly). Copyright 2019 Ethan Brown, 978-1-492-05351-4."

Wenn du der Meinung bist, dass deine Verwendung von Codebeispielen nicht unter die Fair-Use-Regelung oder die hier erteilte Erlaubnis fällt, kannst du uns gerne unter kontaktieren

O'Reilly Online Learning

Hinweis

Seit fast 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.

Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel, Konferenzen und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen findest du unter http://oreilly.com.

Wie du uns kontaktierst

Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Nord
  • Sebastopol, CA 95472
  • 800-998-9938 (in den Vereinigten Staaten oder Kanada)
  • 707-829-0515 (international oder lokal)
  • 707-829-0104 (Fax)

Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/web_dev_node_express_2e aufrufen .

Wenn du Kommentare oder technische Fragen zu diesem Buch stellen möchtest, sende eine E-Mail an

Weitere Informationen zu unseren Büchern, Kursen, Konferenzen und Neuigkeiten findest du auf unserer Website unter http://www.oreilly.com.

Finde uns auf Facebook: http://facebook.com/oreilly

Folge uns auf Twitter: http://twitter.com/oreillymedia

Schau uns auf YouTube: http://www.youtube.com/oreillymedia

Danksagungen

So viele Menschen in meinem Leben haben dazu beigetragen, dass dieses Buch Wirklichkeit geworden ist. Ohne den Einfluss all der Menschen, die mein Leben berührt und mich zu dem gemacht haben, was ich heute bin, wäre es nicht möglich gewesen.

Zunächst möchte ich mich bei allen bei Pop Art bedanken: Meine Zeit bei Pop Art hat nicht nur meine Leidenschaft für die Technik neu entfacht, sondern ich habe auch so viel von allen dort gelernt, und ohne ihre Unterstützung würde es dieses Buch nicht geben. Ich bin Steve Rosenbaum dankbar dafür, dass er einen inspirierenden Arbeitsplatz geschaffen hat, und Del Olds dafür, dass er mich an Bord geholt hat, mir das Gefühl gab, willkommen zu sein, und eine ehrenwerte Führungspersönlichkeit ist. Danke an Paul Inman für seine unerschütterliche Unterstützung und seine inspirierende Einstellung zur Technik und an Tony Alferez für seine herzliche Unterstützung und dafür, dass er mir geholfen hat, Zeit für das Schreiben zu finden, ohne Pop Art zu beeinträchtigen. Schließlich möchte ich mich bei all den großartigen Ingenieuren bedanken, mit denen ich zusammengearbeitet habe und die mich auf Trab gehalten haben: John Skelton, Dylan Hallstrom, Greg Yung, Quinn Michaels, CJ Stritzel, Colwyn Fritze-Moor, Diana Holland, Sam Wilskey, Cory Buckley und Damion Moyer.

Ich bin meinem derzeitigen Team bei Value Management Strategies, Inc. zu großem Dank verpflichtet. Von Robert Stewart und Greg Brink habe ich so viel über die geschäftliche Seite von Software gelernt und von Ashley Carson so viel über Teamkommunikation, Zusammenhalt und Effektivität (danke für deine unermüdliche Unterstützung, Scratch Chromatic). Terry Hays, Cheryl Kramer und Eric Trimble, ich danke euch allen für eure harte Arbeit und Unterstützung! Und danke an Damon Yeutter, Tyler Brenton und Brad Wells für ihre wichtige Arbeit bei der Anforderungsanalyse und dem Projektmanagement. Vor allem aber möchte ich mich bei den talentierten und engagierten Entwicklern bedanken, die unermüdlich mit mir beim VMS zusammengearbeitet haben: Adam Smith, Shane Ryan, Jeremy Loss, Dan Mace, Michael Meow, Julianne Soifer, Matt Nakatani und Jake Feldmann.

Danke an alle meine Bandkollegen bei School of Rock! Was für eine verrückte Reise das war und was für ein freudiges, kreatives Ventil ich habe. Mein besonderer Dank gilt den Ausbildern, die ihre Leidenschaft und ihr Wissen über Musik mit mir teilen: Josh Thomas, Amanda Sloane, Dave Coniglio, Dan Lee, Derek Blackstone und Cory West. Danke an euch alle, dass ihr mir die Möglichkeit gebt, ein Rockstar zu werden!

Zach Mason, danke, dass du mich inspiriert hast. Dieses Buch ist vielleicht nichtDie verlorenen Bücher der Odyssee, aber es ist meins, und ich weiß nicht, ob ich ohne dein Beispiel so mutig gewesen wäre.

Elizabeth und Ezra, ich danke euch für die Geschenke, die ihr mir gemacht habt. Ich werde euch beide für immer lieben.

Ich verdanke alles meiner Familie. Ich hätte mir keine bessere und liebevollere Erziehung wünschen können als die, die sie mir gegeben haben, und ich sehe, dass sich ihre außergewöhnliche Erziehung auch in meiner Schwester widerspiegelt.

Vielen Dank an Simon St. Laurent, dass er mir diese Möglichkeit gegeben hat, und an Angela Rufino (zweite Ausgabe) und Brian Anderson (erste Ausgabe) für ihre stetige und ermutigende Bearbeitung. Danke an alle bei O'Reilly für ihr Engagement und ihre Leidenschaft. Danke an Alejandra Olvera-Novack, Chetan Karande, Brian Sletten, Tamas Piros, Jennifer Pierce, Mike Wilson, Ray Villalobos und Eric Elliot für ihre gründlichen und konstruktiven technischen Überprüfungen.

Katy Roberts und Hanna Nelson gaben mir unschätzbare Rückmeldungen und Ratschläge zu meinem Vorschlag "über den Querbalken", der dieses Buch möglich gemacht hat. Vielen Dank an euch beide! Danke an Chris Cowell-Shah für sein hervorragendes Feedback zum Kapitel über die Qualitätssicherung.

Zu guter Letzt möchte ich mich bei meinen lieben Freunden bedanken, ohne die ich sicherlich verrückt geworden wäre: Byron Clayton, Mark Booth, Katy Roberts und Kimberly Christensen. Ich liebe euch alle.

Get Webentwicklung mit Node und Express, 2. Auflage 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.