1
00:00:03,940 --> 00:00:08,444
In diesem Modul in der allerersten Lektion

2
00:00:08,444 --> 00:00:14,115
haben wir gelernt, wie man einen vollwertigen REST-API-Server mit Express erstellt.

3
00:00:14,115 --> 00:00:17,120
So sind wir in der Lage, die GET-, PUT-, POST-

4
00:00:17,120 --> 00:00:22,185
und DELETE-Anfragen zu den verschiedenen REST-API-Endpunkten zu bedienen.

5
00:00:22,185 --> 00:00:24,975
Aber der Server selbst gab einfach

6
00:00:24,975 --> 00:00:29,115
eine einfache Nachricht als Antwort auf diese Anfragen zurück.

7
00:00:29,115 --> 00:00:32,778
In einem echten REST-API-Server

8
00:00:32,778 --> 00:00:39,620
wird jede eingehende Anfrage eine entsprechende Operation zur Folge haben, die auf der Rückseite in

9
00:00:39,620 --> 00:00:46,610
der Datenbank ausgeführt wird, um möglicherweise Daten abzurufen, um auf eine GET-Anfrage zu antworten,

10
00:00:46,610 --> 00:00:52,430
oder vielleicht um Daten zu ändern, die auf dem Server als Antwort auf eine PUT-Anfrage vorhanden sind.

11
00:00:52,430 --> 00:00:56,270
Jetzt im Rest dieses Moduls

12
00:00:56,270 --> 00:01:03,465
haben wir untersucht, wie wir von einer Knotenanwendung mit einem MongoDB-Server interagieren können,

13
00:01:03,465 --> 00:01:10,500
sei es mit dem MongoDB-Treiber oder mit Mongoose.

14
00:01:10,500 --> 00:01:15,600
Jetzt ist ein vollwertiger REST-API-Server, der in der Lage ist,

15
00:01:15,600 --> 00:01:21,468
die Anforderung Ende zu Ende zu verarbeiten, nur möglich, wenn wir die beiden zusammen kombinieren.

16
00:01:21,468 --> 00:01:24,840
Das heißt, ein express-basierter Server,

17
00:01:24,840 --> 00:01:29,340
der die gesamte Geschäftslogikverarbeitung durchführt und gleichzeitig

18
00:01:29,340 --> 00:01:34,200
die Datenbankanforderungen an die MongoDB

19
00:01:34,200 --> 00:01:40,790
mit dem Knoten MongoDB-Treiber oder mit Mongoose ausgibt.

20
00:01:40,790 --> 00:01:42,780
Wie kombinieren wir die beiden zusammen?

21
00:01:42,780 --> 00:01:47,040
Das werden wir also in dieser Lektion betrachten,

22
00:01:47,040 --> 00:01:51,230
und die beiden Übungen, die wir im Rahmen dieser Lektion durchführen werden.

23
00:01:51,230 --> 00:01:55,875
Wir haben nun gelernt, wie man

24
00:01:55,875 --> 00:01:59,400
einen REST-API-Server mit Express erstellt

25
00:01:59,400 --> 00:02:03,950
und die verschiedenen Anforderungen an die REST-API-Endpunkte bearbeitet.

26
00:02:03,950 --> 00:02:10,765
Wir haben auch gesehen, wie wir mit der Datenbank von unserer Knotenanwendung interagieren können.

27
00:02:10,765 --> 00:02:20,550
Nun, da Sie eine GET-Anfrage an den Server als Beispiel haben,

28
00:02:20,550 --> 00:02:25,500
bedeutet eine GET-Anfrage, die vom Client kommt, um diese GET-Anforderung Ende zu Ende zu behandeln, dass der Client

29
00:02:25,500 --> 00:02:31,830
Daten vom Server abrufen und diese Daten verwenden möchte.

30
00:02:31,830 --> 00:02:34,590
Also, eine GET-Anfrage, die in den Server kommt, muss

31
00:02:34,590 --> 00:02:39,060
durch die verschiedenen Verarbeitung verarbeitet werden, zum Beispiel durch

32
00:02:39,060 --> 00:02:43,880
den Express-Server und sobald die Verarbeitung abgeschlossen ist, dann

33
00:02:43,880 --> 00:02:47,340
erkennt die Geschäftslogik des Express-Servers, dass es

34
00:02:47,340 --> 00:02:51,166
einen Abfragevorgang für die Datenbank ausführen muss.

35
00:02:51,166 --> 00:02:54,630
Dies kann also eine Abfrage an die Datenbank initiieren, um

36
00:02:54,630 --> 00:02:58,605
einen Satz von Dokumenten aus der Datenbank zu holen,

37
00:02:58,605 --> 00:03:02,850
und dann werden die abgerufenen Daten dann

38
00:03:02,850 --> 00:03:07,650
in eine Antwortnachricht umgewandelt und dann an den Server zurückgesendet.

39
00:03:07,650 --> 00:03:15,340
Diese End-to-End-Verarbeitung der Anfrage und Antwort umfasst also zwei Teile.

40
00:03:15,340 --> 00:03:18,060
Einer natürlich macht die Geschäftslogik im

41
00:03:18,060 --> 00:03:23,070
Express-Server und macht dann die Interaktion mit der

42
00:03:23,070 --> 00:03:27,270
Datenbank von der Knotenanwendung vom Express-Server, der

43
00:03:27,270 --> 00:03:32,580
eine Knotenanwendung ist, die entweder MongoDB-Treiber oder Mongoose verwendet.

44
00:03:32,580 --> 00:03:36,190
Wir werden Mongoose in den Übungen verwenden.

45
00:03:36,190 --> 00:03:42,005
In ähnlicher Weise

46
00:03:42,005 --> 00:03:46,420
bedeutet eine POST-Anforderung, die an den REST-API-Endpunkt auf

47
00:03:46,420 --> 00:03:51,330
dem Server kommt, dass die POST-Anforderung einige Daten in den Nachrichtentext einfügt.

48
00:03:51,330 --> 00:03:55,795
Diese Informationen müssen also

49
00:03:55,795 --> 00:04:01,150
auf dem Express-Server verarbeitet werden und die Informationen, die in der

50
00:04:01,150 --> 00:04:07,208
Datenbank gespeichert werden müssen, sollten aus dem Hauptteil der eingehenden POST-Anforderung abgerufen werden und dann

51
00:04:07,208 --> 00:04:11,380
muss die entsprechende Erstellungsanforderung

52
00:04:11,380 --> 00:04:17,590
vom Express-Server erstellt oder initiiert werden, um die MongoDB-Datenbank

53
00:04:17,590 --> 00:04:22,330
und in der Create-Anfrage

54
00:04:22,330 --> 00:04:25,870
werden die Informationen, die aus dem Hauptteil der POST-Anforderung abgerufen wurden, an

55
00:04:25,870 --> 00:04:33,130
die Datenbank gesendet, um ein neues Dokument in einer bestimmten Sammlung in der Datenbank zu erstellen.

56
00:04:33,130 --> 00:04:36,550
Und dann wird das Ergebnis dieses Vorgangs in der

57
00:04:36,550 --> 00:04:40,200
Antwortnachricht an den Client zurückgesendet.

58
00:04:40,200 --> 00:04:45,640
Jede Operation, die an einem REST-API-Endpunkt ausgeführt wird, unabhängig davon, ob es sich um

59
00:04:45,640 --> 00:04:47,155
einen GET, einen PUT

60
00:04:47,155 --> 00:04:48,951
, einen POST oder einen

61
00:04:48,951 --> 00:04:51,005
DELETE-Vorgang handelt,

62
00:04:51,005 --> 00:04:58,063
wird also hinter den Kulissen eine entsprechende Datenbankoperation initiieren.

63
00:04:58,063 --> 00:05:01,120
Nachdem wir diese Interaktion verstanden haben,

64
00:05:01,120 --> 00:05:05,590
erkennen wir, dass eine HTTP-Anfrage, die an

65
00:05:05,590 --> 00:05:10,360
einen REST-API-Endpunkt eingeht, in eine entsprechende Datenbankoperation abgebildet werden muss.

66
00:05:10,360 --> 00:05:12,260
Jede eingehende Anforderung, GET, PUT, POST

67
00:05:12,260 --> 00:05:19,270
oder DELETE bedeutet, dass auf eine bestimmte Ressource in der Datenbank zugegriffen

68
00:05:19,270 --> 00:05:23,530
werden kann, abgerufen werden kann oder eine Gruppe von Ressourcen

69
00:05:23,530 --> 00:05:28,360
aus der Datenbank abgerufen und dann zurück an den Server gesendet werden kann,

70
00:05:28,360 --> 00:05:34,015
oder eine Ressource kann als Antwort auf eine PUT oder eine POST

71
00:05:34,015 --> 00:05:40,425
oder sogar eine DELETE-Anfrage, die an den REST API-Server gesendet wird.

72
00:05:40,425 --> 00:05:44,170
Es liegt also an der Express-Serverlogik,

73
00:05:44,170 --> 00:05:47,545
der im Express REST API-Server implementierten Geschäftslogik,

74
00:05:47,545 --> 00:05:53,860
diese Übersetzung der eingehenden Anforderung zu handhaben, unabhängig davon, ob es sich um eine GET-,

75
00:05:53,860 --> 00:05:58,765
PUT-, POST- oder DELETE-Anforderung in den entsprechenden Datenbankvorgang handelt.

76
00:05:58,765 --> 00:06:03,085
Schauen wir uns ein Beispiel dafür ein wenig genauer an. Wenn man

77
00:06:03,085 --> 00:06:07,480
also zu der Kombination des Express-Routers plus

78
00:06:07,480 --> 00:06:12,445
MongoDB plus Mongoose kommt, die als ODM dazwischen fungieren,

79
00:06:12,445 --> 00:06:17,710
müssen die Operationen der Datenbank

80
00:06:17,710 --> 00:06:23,275
innerhalb des Routers initiiert werden, den wir für jeden der REST-API-Endpunkte erstellt haben.

81
00:06:23,275 --> 00:06:24,310
Also innerhalb des Routers,

82
00:06:24,310 --> 00:06:26,740
sogar die GET-Methode,

83
00:06:26,740 --> 00:06:28,615
die PUT- oder die POST-Methode.

84
00:06:28,615 --> 00:06:35,440
Die entsprechende Aktion, die auf der Datenbank ausgeführt werden soll, unabhängig davon, ob es sich

85
00:06:35,440 --> 00:06:39,940
um eine GET-Anfrage handelt, die eine Gerichte Finding-Methode ausführt oder

86
00:06:39,940 --> 00:06:44,235
eine POST-Anfrage verursacht, die eine Gerichte erstellen Methode ausgeführt

87
00:06:44,235 --> 00:06:48,595
wird, muss von unserem Express-Server durchgeführt werden, was dazu führt,

88
00:06:48,595 --> 00:06:53,285
dass die entsprechende Operation , die in der MongoDB-Datenbank initiiert wurde.

89
00:06:53,285 --> 00:06:55,555
Also mit diesem Verständnis,

90
00:06:55,555 --> 00:07:00,655
wie die Anforderungen in eine entsprechende Datenbankoperationen übersetzt werden,

91
00:07:00,655 --> 00:07:06,720
lassen Sie uns zu den beiden Übungen fortfahren, wo wir bei der Behandlung der GET, PUT, POST

92
00:07:06,720 --> 00:07:15,040
und DELETE Anfrage, die zu den /Dishes/:dishid Endpunkten kommen, und

93
00:07:15,040 --> 00:07:18,940
auch spezifische Kommentare, die sich in

94
00:07:18,940 --> 00:07:24,470
den Unterdokumenten befinden, die innerhalb des Dokumentes eingeschlossen sind.