﻿1
00:00:01,270 --> 00:00:04,520
‫Erzähler: Bevor wir uns mit NodeJS-Code befassen, wollen wir

2
00:00:04,520 --> 00:00:06,700
‫uns zunächst einen groben Überblick darüber

3
00:00:06,700 --> 00:00:08,990
‫verschaffen, was NodeJS eigentlich ist, wofür

4
00:00:08,990 --> 00:00:11,800
‫wir es verwenden und warum wir Node

5
00:00:11,800 --> 00:00:13,843
‫anstelle anderer Technologien verwenden.

6
00:00:15,410 --> 00:00:17,570
‫Die offizielle Definition lautet also,

7
00:00:17,570 --> 00:00:19,480
‫dass NodeJS eine

8
00:00:19,480 --> 00:00:23,783
‫JavaScript-Laufzeit ist, die auf der Open-Source-V8-JavaScript-Engine von Google basiert.

9
00:00:23,783 --> 00:00:26,279
‫Was bedeutet das nun konkret?

10
00:00:26,279 --> 00:00:29,289
‫Versuchen wir zunächst zu verstehen, was

11
00:00:29,289 --> 00:00:31,174
‫die JavaScript-Laufzeit

12
00:00:31,174 --> 00:00:33,913
‫und die V8-Engine eigentlich sind.

13
00:00:35,190 --> 00:00:37,914
‫Sie haben JavaScript also wahrscheinlich schon einmal

14
00:00:37,914 --> 00:00:42,120
‫verwendet und es war wahrscheinlich immer nur in einem Browser, oder?

15
00:00:42,120 --> 00:00:45,400
‫Da jeder Browser nativ HTML, CSS

16
00:00:45,400 --> 00:00:49,250
‫und JavaScript versteht und egal ob Sie Vanilla-JavaScript

17
00:00:49,250 --> 00:00:51,760
‫oder ein JavaScript-Framework wie React-

18
00:00:51,760 --> 00:00:54,713
‫oder Angular-Code schreiben, ist das

19
00:00:54,713 --> 00:00:56,370
‫alles nur

20
00:00:56,370 --> 00:00:59,920
‫JavaScript, das direkt im Browser ausgeführt wird.

21
00:00:59,920 --> 00:01:01,500
‫Der Browser ist in

22
00:01:01,500 --> 00:01:03,454
‫diesem Fall also die JavaScript Runtime.

23
00:01:03,454 --> 00:01:06,110
‫Aber was wäre, wenn wir JavaScript

24
00:01:06,110 --> 00:01:08,311
‫aus dem Browser nehmen

25
00:01:08,311 --> 00:01:10,988
‫und einfach JavaScript-Code woanders ausführen könnten,

26
00:01:10,988 --> 00:01:14,860
‫ohne all die Einschränkungen, die wir im Browser haben?

27
00:01:14,860 --> 00:01:17,580
‫Nun, es stellt sich heraus, dass wir es tatsächlich können.

28
00:01:17,580 --> 00:01:19,955
‫Und die Lösung dafür heißt,

29
00:01:19,955 --> 00:01:23,425
‫wie Sie sich denken können, NodeJS und Node JS

30
00:01:23,425 --> 00:01:25,830
‫ist also nur eine weitere JavaScript-Laufzeit.

31
00:01:25,830 --> 00:01:29,252
‫Es ist wie ein Container, wie eine

32
00:01:29,252 --> 00:01:32,010
‫Umgebung, in der ein in

33
00:01:32,010 --> 00:01:37,010
‫JavaScript geschriebenes Programm ausgeführt werden kann, jedoch außerhalb jedes Browsers.

34
00:01:37,230 --> 00:01:39,850
‫Okay, es ist natürlich etwas

35
00:01:39,850 --> 00:01:42,908
‫komplexer, aber für den Moment reicht es.

36
00:01:42,908 --> 00:01:45,380
‫Nun, wer führt den Code eigentlich aus,

37
00:01:45,380 --> 00:01:47,438
‫wenn nicht der Browser?

38
00:01:47,438 --> 00:01:50,070
‫Und hier kommt der

39
00:01:50,070 --> 00:01:52,770
‫von Google entwickelte V8-Motor ins Spiel.

40
00:01:52,770 --> 00:01:55,420
‫Denn genau dort wird

41
00:01:55,420 --> 00:01:59,800
‫JavaScript-Code geparst und in NodeJS ausgeführt, okay?

42
00:01:59,800 --> 00:02:02,819
‫Ich hoffe also, dass die Definition von

43
00:02:02,819 --> 00:02:07,116
‫NodeJS als JavaScript-Laufzeit auf der V8-JavaScript-Engine jetzt viel mehr Sinn

44
00:02:07,116 --> 00:02:10,104
‫macht und dies ist wiederum nur

45
00:02:10,104 --> 00:02:12,742
‫eine sehr allgemeine Übersicht darüber,

46
00:02:12,742 --> 00:02:16,060
‫was Node ist und wie es funktioniert.

47
00:02:16,060 --> 00:02:18,430
‫Wir werden im nächsten Abschnitt sehr

48
00:02:18,430 --> 00:02:20,926
‫detailliert darauf eingehen, wie Node hinter den

49
00:02:20,926 --> 00:02:23,860
‫Kulissen wirklich funktioniert, aber an dieser Stelle möchte

50
00:02:23,860 --> 00:02:26,152
‫ich nur, dass Sie sich

51
00:02:26,152 --> 00:02:28,810
‫einen schnellen Überblick verschaffen, damit Sie die Grundlagen

52
00:02:28,810 --> 00:02:32,203
‫von NodeJS durchgängig in der Praxis erlernen können diese Abteilung.

53
00:02:34,000 --> 00:02:36,230
‫Wie auch immer, jetzt, da

54
00:02:36,230 --> 00:02:38,400
‫wir JavaScript außerhalb des Browsers

55
00:02:38,400 --> 00:02:40,704
‫in einer Art eigenständiger Umgebung haben,

56
00:02:40,704 --> 00:02:44,058
‫die nur NodeJS ist, können wir mit JavaScript

57
00:02:44,058 --> 00:02:46,690
‫so viel mehr Dinge tun, die vorher

58
00:02:46,690 --> 00:02:48,254
‫völlig unmöglich

59
00:02:48,254 --> 00:02:50,515
‫waren, wie zum Beispiel auf

60
00:02:50,515 --> 00:02:53,054
‫das Dateisystem zuzugreifen, oder bessere Netzwerkfähigkeiten

61
00:02:53,054 --> 00:02:55,630
‫sind mit nicht möglich NodeJS und

62
00:02:55,630 --> 00:02:59,750
‫all diese Faktoren zusammen geben uns die perfekten Voraussetzungen für

63
00:02:59,750 --> 00:03:02,327
‫den Einsatz von NodeJS als Webserver,

64
00:03:02,327 --> 00:03:05,550
‫sodass wir jetzt endlich JavaScript auf der Serverseite

65
00:03:05,550 --> 00:03:08,020
‫der Webentwicklung verwenden können, um schnelle,

66
00:03:08,020 --> 00:03:10,810
‫hochskalierbare Netzwerkanwendungen für die Stromversorgung des gesamten

67
00:03:10,810 --> 00:03:13,540
‫Back-Ends zu erstellen für Websites oder Webanwendungen.

68
00:03:13,540 --> 00:03:15,990
‫Und das ist absolut

69
00:03:15,990 --> 00:03:19,030
‫fantastisch und bahnbrechend für die Webentwicklung.

70
00:03:19,030 --> 00:03:22,103
‫Schauen wir uns nun einige Anwendungsfälle für Node

71
00:03:22,103 --> 00:03:25,703
‫an und warum es so gut für die Back-End-Entwicklung geeignet ist.

72
00:03:27,010 --> 00:03:29,430
‫Und das erste, worüber wir

73
00:03:29,430 --> 00:03:31,060
‫sprechen müssen, ist

74
00:03:31,060 --> 00:03:34,603
‫die Tatsache, dass Node-Anwendungen so schnell und skalierbar

75
00:03:34,603 --> 00:03:36,705
‫sind, weil NodeJS Single-Threaded

76
00:03:36,705 --> 00:03:40,110
‫ist, basierend auf einem ereignisgesteuerten, nicht blockierenden

77
00:03:40,110 --> 00:03:43,932
‫I/O-Modell, was NodeJS sehr leicht und effizient macht.

78
00:03:43,932 --> 00:03:47,140
‫Das hört sich natürlich super kompliziert an, ich

79
00:03:47,140 --> 00:03:50,040
‫weiß, aber wir werden noch einmal etwas später

80
00:03:50,040 --> 00:03:52,146
‫im Kurs darüber sprechen, was

81
00:03:52,146 --> 00:03:54,110
‫das alles genau bedeutet.

82
00:03:54,110 --> 00:03:56,250
‫Denken Sie jedoch

83
00:03:56,250 --> 00:03:59,052
‫vorerst daran, dass Node perfekt zum

84
00:03:59,052 --> 00:04:02,910
‫Erstellen superschneller und skalierbarer datenintensiver Webanwendungen geeignet ist.

85
00:04:02,910 --> 00:04:06,280
‫Und das macht NodeJS perfekt zum

86
00:04:06,280 --> 00:04:08,580
‫Erstellen aller Arten

87
00:04:08,580 --> 00:04:11,830
‫von Anwendungen, z. B. zum

88
00:04:11,830 --> 00:04:16,830
‫Erstellen einer API mit einer dahinter liegenden Datenbank und

89
00:04:17,090 --> 00:04:20,250
‫vorzugsweise einer nicht-relationalen NoSQL-Datenbank wie

90
00:04:20,250 --> 00:04:24,568
‫MongoDB Tauchen Sie immer tiefer in NodeJS ein.

91
00:04:24,568 --> 00:04:27,350
‫Aber es gibt natürlich auch alle möglichen

92
00:04:27,350 --> 00:04:30,007
‫anderen Apps, die wir bauen können,

93
00:04:30,007 --> 00:04:33,739
‫wie beispielsweise Datenstreaming-Anwendungen wie YouTube oder Netflix, Echtzeit-Chat-Apps oder

94
00:04:33,739 --> 00:04:36,600
‫sogar serverseitige Webanwendungen, bei denen der gesamte

95
00:04:36,600 --> 00:04:39,430
‫Inhalt einfach direkt auf der Seite generiert

96
00:04:39,430 --> 00:04:42,055
‫wird Server, also wie Sie

97
00:04:42,055 --> 00:04:44,684
‫sehen, sind die Möglichkeiten wirklich endlos.

98
00:04:44,684 --> 00:04:47,650
‫Aber es gibt tatsächlich auch eine Art von Apps,

99
00:04:47,650 --> 00:04:49,990
‫die wir nicht mit Node erstellen sollten.

100
00:04:49,990 --> 00:04:51,890
‫Und das ist,

101
00:04:51,890 --> 00:04:54,380
‫wenn unsere App eine

102
00:04:54,380 --> 00:04:57,750
‫superschwere serverseitige Verarbeitung benötigt, wie Bildmanipulationen,

103
00:04:57,750 --> 00:05:01,270
‫Videokonvertierung, Dateikomprimierung oder ähnliches, in Ordnung.

104
00:05:01,270 --> 00:05:04,930
‫Warum das so ist, erfahren Sie, wenn wir tiefer

105
00:05:04,930 --> 00:05:07,410
‫in die Funktionsweise von Node eintauchen.

106
00:05:07,410 --> 00:05:09,500
‫In diesem Fall sind wir

107
00:05:09,500 --> 00:05:14,010
‫also besser dran, etwas wie Ruby on Rails, PHP oder Python zu verwenden.

108
00:05:14,010 --> 00:05:16,460
‫Da NodeJS einfach nicht für

109
00:05:16,460 --> 00:05:19,910
‫diese Anwendungsfälle entwickelt wurde und es zwar Lösungen gibt,

110
00:05:19,910 --> 00:05:22,480
‫damit umzugehen, sollten wir immer das

111
00:05:22,480 --> 00:05:25,157
‫richtige Werkzeug für die jeweilige Aufgabe einsetzen.

112
00:05:25,157 --> 00:05:28,361
‫Okay, dies sind also die Arten von

113
00:05:28,361 --> 00:05:31,977
‫Anwendungen, die wir mit NodeJS erstellen können und nicht.

114
00:05:31,977 --> 00:05:34,780
‫Und wenn Sie sich für Node entscheiden,

115
00:05:34,780 --> 00:05:37,540
‫dann sind Sie in guter

116
00:05:37,540 --> 00:05:41,206
‫Gesellschaft, denn viele Top-Unternehmen wie Netflix, Uber, PayPal,

117
00:05:41,206 --> 00:05:45,140
‫Ebay und viele mehr haben bereits mit NodeJS begonnen,

118
00:05:45,140 --> 00:05:48,910
‫was wirklich beweist, dass die Technologie zu diesem Zeitpunkt

119
00:05:48,910 --> 00:05:52,850
‫stabil genug ist, um in der Produktion verwendet werden.

120
00:05:52,850 --> 00:05:56,125
‫Natürlich gibt es noch mehr Gründe für die Verwendung von

121
00:05:56,125 --> 00:05:59,040
‫Node, und der größte ist wahrscheinlich, dass es für

122
00:05:59,040 --> 00:06:01,650
‫Sie oder Ihr Team viel einfacher ist,

123
00:06:01,650 --> 00:06:03,758
‫die gleiche Sprache für Ihren

124
00:06:03,758 --> 00:06:07,420
‫gesamten Stack sowohl im Frontend als auch im Backend zu verwenden.

125
00:06:07,420 --> 00:06:09,010
‫Erstens müssen Sie

126
00:06:09,010 --> 00:06:11,070
‫keine neue Programmiersprache lernen,

127
00:06:11,070 --> 00:06:13,580
‫um Ihr Back-End zu erstellen, und

128
00:06:13,580 --> 00:06:15,824
‫Sie müssen auch nicht ständig

129
00:06:15,824 --> 00:06:18,450
‫zwischen den Sprachen wechseln, was den gesamten

130
00:06:18,450 --> 00:06:20,533
‫Erstellungsprozess schneller und effizienter macht.

131
00:06:20,533 --> 00:06:23,107
‫Glauben Sie mir, es ist wirklich

132
00:06:23,107 --> 00:06:26,230
‫erstaunlich, JavaScript verwenden zu können, um Ihre gesamte

133
00:06:26,230 --> 00:06:29,215
‫Anwendung von Anfang bis Ende zu erstellen.

134
00:06:29,215 --> 00:06:31,727
‫Es ist wirklich absolut fantastisch.

135
00:06:31,727 --> 00:06:34,150
‫Und ein weiterer guter Grund

136
00:06:34,150 --> 00:06:38,502
‫für die Verwendung von Node ist, dass es eine riesige Bibliothek von

137
00:06:38,502 --> 00:06:41,450
‫Open-Source-Paketen oder -Modulen, wie wir sie auch nennen

138
00:06:41,450 --> 00:06:43,884
‫können, für jeden kostenlos zur Verfügung stellt.

139
00:06:43,884 --> 00:06:47,190
‫Es heißt NPM und Sie haben wahrscheinlich schon davon gehört

140
00:06:47,190 --> 00:06:48,976
‫oder es sogar schon verwendet.

141
00:06:48,976 --> 00:06:51,170
‫Und natürlich werden wir auch anfangen,

142
00:06:51,170 --> 00:06:53,563
‫Pakete direkt in der Sektion zu verwenden.

143
00:06:54,430 --> 00:06:56,920
‫Und schließlich ist es auch

144
00:06:56,920 --> 00:06:59,420
‫gut zu wissen, dass es eine

145
00:06:59,420 --> 00:07:02,020
‫riesige aktive Community von Node-Entwicklern gibt,

146
00:07:02,020 --> 00:07:05,650
‫die NodeJS ständig verbessern und Anfängern wie Ihnen helfen.

147
00:07:05,650 --> 00:07:08,670
‫Und damit Sie sich auch in den nächsten

148
00:07:08,670 --> 00:07:11,929
‫Jahren bei all Ihren Projekten auf die Technik verlassen können.

149
00:07:11,929 --> 00:07:15,343
‫Okay, das war eine sehr kurze

150
00:07:15,343 --> 00:07:20,040
‫Einführung und Übersicht über NodeJS und einige seiner Anwendungsfälle.

151
00:07:20,040 --> 00:07:21,920
‫Für den Rest dieses Abschnitts

152
00:07:21,920 --> 00:07:23,810
‫werden wir nun Node verwenden,

153
00:07:23,810 --> 00:07:25,950
‫um einen sehr einfachen Webserver zu

154
00:07:25,950 --> 00:07:28,750
‫erstellen und eine extrem einfache API zu erstellen,

155
00:07:28,750 --> 00:07:30,160
‫damit Sie sich

156
00:07:30,160 --> 00:07:32,763
‫mit den Grundprinzipien der Node-Entwicklung vertraut machen können.

