federn.js: Eine Anleitung zum schnellen Erstellen eines erholsamen API -Servers
Kernpunkte:
- federn.js vereinfacht die Erstellung von erholsamen API -Servern, übernimmt die meisten sich wiederholenden Backend -Arbeiten und erm?glicht es den Entwicklern, sich auf die Codesanstellung und -konfiguration zu konzentrieren.
- Dieses Framework basiert auf Express, unterstützt SQL- und NoSQL -Datenbanken und verwendet Dienste, die automatisch den erforderlichen Code generieren, sodass CRUD -Operationen einfach ausgeführt werden k?nnen.
- Authentifizierung in feathers.js kann JSON Web Token (JWT) verwenden, um API -Endpunkte zu schützen, um sicherzustellen, dass nur autorisierte Benutzer auf Daten zugreifen oder diese ?ndern k?nnen.
- Haken in federn.js wirken als Middleware -Funktionen, die Daten vor oder nach dem Erreichen der Daten in die Datenbank manipulieren, was für Aufgaben wie überprüfung, Autorisierung und dynamisches Hinzufügen von Feldern sehr nützlich ist.
- federn.js ist so konzipiert, dass sie einfach zu verwenden und zu erweitern ist, Echtzeit-Updates über WebSockets unterstützt und eine flexible Architektur für eine Vielzahl von Front-End-Frontworks bietet.
In diesem Artikel werden Sie mit Feathers.js einen erholsamen API -Server in node.js erstellen.
API-Server, auch als Anwendungsserver bezeichnet, ist ein Programm, das Daten an Front-End-Anwendungen bereitstellt. Es verarbeitet auch die Gesch?ftslogik im Backend und bietet einen eingeschr?nkten Zugriff auf die Datenbank der Organisation. Es verhindert nicht nur, dass nicht autorisierte Personen auf Daten zugreifen.
Jede Anwendung, die Sie erstellen, muss den Endbenutzer Dienste zur Verfügung stellen. Dazu muss Ihre Anwendung die Daten verarbeiten. Sie k?nnen die Remote -API verwenden, um einen neuen Dienst zu erstellen. Für die meisten Anwendungen müssen Sie jedoch Ihren eigenen Datenspeicher verwalten. Eine beliebte Option ist die Verwendung von Online -Datenspeicherdiensten wie Firebase. Auf diese Weise müssen Sie sich nicht mit den mühsamen Details des Ausführens eines verteilten Datenbankservers befassen. Ihre Projektanforderungen erfordern jedoch m?glicherweise ein voll ausgestattetes internes Datenbankverwaltungssystem wie MongoDB oder Oracle. Damit Ihre Front-End-Anwendung auf die in der Datenbank gespeicherten Daten zugreifen kann, ben?tigen Sie eine Serveranwendung zwischen der Datenbank und der Front-End-Anwendung.
Wie im obigen Bild gezeigt, besteht der Auftrag eines Anwendungsservers darin, mithilfe von SQL- oder NoSQL -Befehlen Daten aus einer Datenbank zuzugreifen und sie in ein Format umzuwandeln, das eine Front -End -Anwendung (Client -Browser) verstehen kann - wie z. B. JSON . Darüber hinaus k?nnen Anwendungsserver verschiedene Sicherheitsprotokolle verwenden - z. Einer der Hauptvorteile der Verwendung dieser Architektur besteht darin, dass Sie denselben Anwendungsserver verwenden k?nnen, um Anwendungen für verschiedene Plattformen bereitzustellen - Desktop, Mobile, Web und mehr. Darüber hinaus ist es auch einfach, Ihre Anwendung horizontal zu skalieren, um Benutzern effizienter Dienste bereitzustellen und schnelle Reaktionszeiten zu erreichen.
Wir erstellen einen einfachen API -Server und demonstrieren die verschiedenen Funktionen, die Federn bieten.
Voraussetzung:
Bevor Sie dieses Tutorial beginnen, müssen Sie eine solide Grundlage zu den folgenden Themen haben:
- es6 JavaScript
- Express -Anwendung erstellen
- Erstellen Sie eine erholsame API mit Express
Federn sind auf Express, einem minimalistischen Web -Framework für node.js. Wenn Sie das im Link gezeigte Tutorial abschlie?en, finden Sie es sehr mühsam, die erholsame API nur mit Express zu bauen. Bei Federn erfolgt die meisten sich wiederholenden Arbeiten für Sie. Sie müssen sich nur auf das Konfigurieren und Anpassen Ihres Codes konzentrieren. Lassen Sie uns in den Code eintauchen und erfahren, wie dieses Web -Framework funktioniert.
Projekterstellung:
Um Federn zu verwenden, müssen Sie seine Befehlszeilenanwendung global installieren:
npm install -g @feathersjs/cli
Erstellen Sie als n?chstes ein neues API -Projekt mit dem folgenden Befehl:
mkdir contacts-api cd contacts-api feathers generate app
Folgendes sind meine Entscheidungen, Sie k?nnen jeden Test -Framework ausw?hlen, den Sie m?gen. Leider steht der Test nicht im Fokus dieses Artikels, daher wird er hier nicht behandelt. Ich pers?nlich mag Einfachheit, weshalb ich mich entschieden habe.
Nach Abschluss der Installation k?nnen Sie Ihren bevorzugten Code -Editor zum Anzeigen der Projektdatei ?ffnen.
Wenn Sie das Express -Tutorial abschlie?en, das ich im Abschnitt Voraussetzungen aufgeführt habe, sollte der generierte Code Sie nicht erschrecken. Hier ist eine kurze Zusammenfassung, die Ordner und Dateien beschreibt.
Machen Sie sich jetzt keine allzu gro?e Sorgen um die Rolle jeder Datei. Wenn Sie dieses Tutorial durchlaufen, erfahren Sie mehr darüber, wie sie funktionieren. Lassen Sie uns nun best?tigen, dass der Test ordnungsgem?? funktioniert.
Code -Stil -Check (LINTING):
Um sicherzustellen, dass unser Projekt den definierten Eslint -Regeln entspricht, führen Sie einfach den Befehl npm test
aus. Wenn Sie eine Unix- oder Linux -Plattform verwenden, sollte dies gut funktionieren. Wenn Sie Windows verwenden, müssen Sie etwas optimieren, um den Test erfolgreich durchzuführen.
Gehen Sie zuerst zu package.json
und anzeigen Sie den Abschnitt scripts
. ?ndern Sie die test
Zeile in:
"scripts": { "test": "npm run eslint && SET NODE_ENV= npm run jest", },
Wenn Sie als n?chstes sch?ner in Visual Studio -Code installiert sind, müssen Sie die einzelne Zitateinstellung in der Registerkarte Arbeitsbereicheinstellungen in true ?ndern:
{ "prettier.singleQuote": true }
Stellen Sie zum Schluss sicher, dass beim Erstellen oder Bearbeiten einer Datei die Newline LF ist. Wenn Sie Visual Studio -Code oder ?hnliche Editoren verwenden, k?nnen Sie den aktuellen Neuen -Line -Stil in der Statusleiste überprüfen. Wenn CRLF angezeigt wird, wechseln Sie zu LF. Wenn Sie diese ?nderungen vornehmen, k?nnen Sie den Code -Style -Check -Test bestehen. Leider braucht es mehr Arbeit, um den Test zu bestehen, und wird hier nicht vorgestellt.
Lassen Sie uns sehen, wie die CRUD RESTful -Schnittstelle generiert wird.
Service generieren:
Erstellen einer erholsamen CRUD -API -Schnittstelle in Express erfordert einige Arbeiten. In Federn k?nnen Sie Code generieren, indem Sie einfach einen einzelnen Befehl ausführen und einige Fragen beantworten:
npm install -g @feathersjs/cli
In diesem Tutorial werden wir die NEDB -Datenbank verwenden. Feathers unterstützt SQL -Datenbanken (wie MySQL) und NoSQL -Datenbanken (wie MongoDB). Die Installation eines Datenbanksystems - ob auf Ihrem Computer oder auf einem Cloud -Server - ben?tigt jedoch einige Zeit, um es zu konfigurieren. NEDB hingegen ist eine In-Memory-Datenbank, die vollst?ndig in JavaScript geschrieben wurde und eine Teilmenge der MongoDB-API unterstützt. Es ist keine Konfiguration erforderlich. Es eignet sich perfekt zum Prototyping und zum Testen neuer Anwendungen. Dies ist die Datenbank, die wir in diesem Tutorial verwenden werden.
Schauen wir uns einen kurzen Blick auf einige der mit diesem Befehl generierten Dateien an:
-
services/contacts/contact.service.js
. Dies ist ein Federn -Service, der CRUD -API -Endpunkte für/contacts
bietet. Sehr klein, nicht wahr? Dies liegt daran, dass Federn das schwere Heben für uns getan haben. Es speichert uns vor dem Schreiben von Boilerplate -CRUD -Code. -
services/contacts/contact.hooks.js
. Hier passen wir das Verhalten der CRUD -Logik an. Wir haben den Abschnittbefore
, in dem wir die Daten überprüfen oder ?ndern k?nnen, bevor die Federn die Datenbank lesen oder schreiben. Wir haben auch einen Abschnittafter
, in dem wir die Ergebnisse in der Datenbank überprüfen oder ?ndern k?nnen, bevor wir sie an die Client -Anwendung senden. Wir k?nnen Vorg?nge wie die Einschr?nkung des Zugriffs, die Datenüberprüfung, die Durchführung von Join -Operationen und die Berechnung der Werte zus?tzlicher Felder oder Spalten ausführen. -
models/contacts.model.js
. Hier definieren wir ein Modell und fügen es an die Datenbanktabelle hinzu. Hier definieren wir auch ein Muster, das verwendet werden kann, um Felder zu überprüfen, wenn ein neuer Datensatz eingefügt oder aktualisiert wird. Leider unterstützt NEDB den Modus nicht. Ich habe jedoch ein Beispiel für ein mit MongoDB verbundener Modell geliefert, das die Modusfunktionalit?t über den Mongoose -Adapter unterstützt:
mkdir contacts-api cd contacts-api feathers generate app
Trotz einiger Einschr?nkungen bei NEDB ist es immer noch eine sehr geeignete Datenbank für das Prototyping. In den meisten NOSQL -Datenbanken k?nnen Sie Daten mit einer Struktur mithilfe einer Struktur einreichen, ohne zuerst das Schema zu definieren. Es ist am besten, das Modell nach der Implementierung der Projektanforderungen zu implementieren. Mit dem Muster führen Federn die Feldvalidierung für Sie mithilfe der von Ihnen definierten Regeln durch. Sie ben?tigen eine produktionsbereite Datenbank (z. B. MongoDB), um das Schema zu definieren. Bitte beachten Sie, dass die Konfigurationsdefinition der Entwicklungsdatenbank in config/default.json
:
"scripts": { "test": "npm run eslint && SET NODE_ENV= npm run jest", },
Hier werden die Datenbankanmeldeinformationen bereitgestellt. Wir haben eine andere Konfigurationsdatei config/production.json
. Dies ist die Produktionsdatenbankkonfiguration, die bei der Bereitstellung der Federn -Anwendung verwendet wird. Es ist wichtig, eine separate Datenbank w?hrend der Entwicklung zu verwenden. Andernfalls besteht das Gefahr, dass Sie gesch?ftliche Betriebsdaten in Ihrer Produktionsdatenbank l?schen oder besch?digen.
Jetzt, da wir den CRUD -Service des Kontakts eingerichtet haben, ist es Zeit, ihn zu versuchen. Sie k?nnen den Federserver mit dem Befehl npm start
starten. Bitte beachten Sie, dass dieser Server das Hot Reload nicht unterstützt. Daher muss es jedes Mal neu gestartet werden, wenn Sie den Code ?ndern. Um mit unserer Federn -Anwendung zu interagieren, ben?tigen wir ein API -Browser -Tool wie Postman oder Schlaflosigkeit. In diesem Tutorial werde ich Schlaflosigkeit verwenden, aber Sie k?nnen es einfach mit Postboten oder einem anderen Tool tun.
Erstellen Sie eine neue GET -Anforderung (drücken Sie Strg n ) und nennen Sie es "List -Kontakte". Geben Sie im URL -Abschnitt http://localhost:3030/contacts
ein. Wenn Sie auf die Schaltfl?che "Senden" klicken, sollten Sie die folgende Ansicht sehen:
Nichts! Unsere Datenbank ist derzeit leer, daher müssen wir einige neue Kontakte erstellen. Erstellen Sie eine neue Anfrage namens Create Contact. Füllen Sie die verbleibenden Felder wie folgt aus:
Wenn Sie vergessen, die Methode in der obigen Form zu ver?ffentlichen, k?nnen Sie sie sp?ter ?ndern. ?ndern Sie die Methode, um die Registerkarte "K?rper" in JSON zu ver?ffentlichen. Kopieren Sie die folgenden Daten in die Registerkarte JSON:
npm install -g @feathersjs/cli
Wenn Sie auf die Schaltfl?che "Senden" klicken, sollten Sie die folgende Antwort erhalten. Bitte beachten Sie, dass ein _id
für Ihren neuen Kontakt generiert wurde.
kehren Sie zu "Listenkontakte" zurück und klicken Sie erneut auf die Schaltfl?che "Senden". Sie sollten die folgenden Ergebnisse erhalten:
mkdir contacts-api cd contacts-api feathers generate app
kehren Sie zum "Kontakt erstellen" zurück und ver?ffentlichen Sie mehrere neue Datens?tze:
"scripts": { "test": "npm run eslint && SET NODE_ENV= npm run jest", },
{ "prettier.singleQuote": true }
Lassen Sie uns jetzt den Aktualisierungsvorgang durchführen. Zu diesem Zweck werden wir die Aktualisierungs -HTTP -Methode nicht verwenden. Diese Methode überschreibt den Datensatz vollst?ndig. Alles, was wir tun wollen, ist, ein einzelnes Feld zu überschreiben, nicht den gesamten Datensatz. Dazu werden wir Patch verwenden. Erstellen Sie eine neue Anfrage "Kontakt aktualisieren", wie unten gezeigt:
Geben Sie im Feld URL http://localhost:3030/contacts/{_id}
ein. Ersetzen Sie {_id}
durch die ID des ersten Datensatzes. Fügen Sie die folgenden Daten in die Registerkarte JSON ein:
feathers generate service
Klicken Sie auf die Schaltfl?che "Senden". Sie sollten die folgenden Ergebnisse sehen:
Bitte beachten Sie, dass die verbleibenden Felder unver?ndert bleiben. Als n?chstes werden wir einen Datensatz l?schen. Es ist einfach. Erstellen Sie einfach eine neue Anforderung und nennen Sie sie "Kontakt l?schen". Verwenden Sie im URL -Feld das Format http://localhost:3030/contacts/{_id}
. Ersetzen Sie {_id}
genau wie zuvor die ID des Datensatzes, den Sie l?schen m?chten. Wenn Sie auf "Senden" klicken, l?schen Sie den Datensatz für Sie. Sie k?nnen best?tigen, indem Sie die Anfrage der Liste Kontakte erneut ausführen.
Wir haben nur überprüft, ob alle CRUD -Operationen ordnungsgem?? ausgeführt werden. Im n?chsten Abschnitt lernen wir, wie man Authentifizierung einrichtet.
(Der folgende Inhalt ?hnelt dem Originaltext, einige Anweisungen und Abs?tze wurden jedoch vorgenommen, um die Lesbarkeit und Flie?f?higkeit zu verbessern und die ursprüngliche Absicht unver?ndert zu halten. Das Bildformat bleibt unver?ndert.)
Authentifizierung:
Derzeit sind unsere /contacts
-Pi -Endpunkte nicht geschützt. Wenn wir die Anwendung auf einem Cloud -Server bereitstellen, kann jeder mit der URL auf unsere Datens?tze zugreifen und sie bedienen. Um den Zugriff einzuschr?nken, müssen wir die Authentifizierung einrichten. Wir werden JSON -Web -Token verwenden, um die Authentifizierung für unsere API -Anwendungen zu implementieren. Führen Sie den folgenden Befehl aus, um es festzulegen:
npm install -g @feathersjs/cli
Wie Sie sehen, unterstützt Federn verschiedene Methoden der Benutzerauthentifizierung. Die Option "lokaler Benutzername -Passwort" ist am einfachsten festgelegt.
W?hlen Sie die folgenden Optionen aus:
Als n?chstes müssen wir einen neuen Benutzer erstellen. Wir k?nnen dies mit Schlaflosigkeit oder einem anderen API -Browser -Tool tun. Erstellen Sie eine neue Anfrage und nennen Sie es "Benutzer erstellen".
Senden Sie in der Registerkarte JSON die folgenden Daten:
mkdir contacts-api cd contacts-api feathers generate app
Sie sollten eine Antwort erhalten, die Folgendes ?hnelt:
Wir haben jetzt einen Benutzer. Lassen Sie uns dies best?tigen, indem Sie eine neue Anfrage "Listenbenutzer" erstellen und die URL http://localhost:3030/users
senden. Leider erhalten Sie die folgende Antwort:
Wir müssen uns authentifizieren, um auf diese Daten zuzugreifen. Da wir keine Front-End-Anwendung haben, mit der wir uns anmelden k?nnen, werden wir den API-Browser weiterhin verwenden. Erstellen Sie eine neue Anfrage und nennen Sie sie "Get JWT Token". Füllen Sie das Formular wie folgt aus:
Diese Anforderung verwendet die Post -Methode. Für mehr Klarheit k?nnen Sie es in "Login" umbenennen. Kopieren Sie auf der Registerkarte JSON die folgenden Daten:
"scripts": { "test": "npm run eslint && SET NODE_ENV= npm run jest", },
Nach dem Klicken auf die Schaltfl?che Senden sollten Sie die folgende Antwort erhalten:
kopieren Sie den Token -Code (ohne Doppelzitate). Gehen Sie zur Seite "List -Benutzeranforderung", w?hlen Sie die Registerkarte Auth und w?hlen Sie Tr?ger. Fügen Sie diesen Token -Code in das Token -Feld ein.
Nachdem Sie auf die Schaltfl?che "Senden" geklickt haben, sollten Sie die Benutzerliste sehen. Bitte beachten Sie, dass unser Authentifizierungssystem nicht vollst?ndig sicher ist. Jeder mit einem /users
-REL -Endpunkt kann ein neues Konto erstellen und auf unser System zugreifen. Um die nicht autorisierte Erstellung neuer Konten zu verhindern, müssen wir diesen Endpunkt auch einschr?nken. ?ffnen Sie die Datei services/users/users.hooks.js
und aktualisieren Sie den folgenden Code -Snippet:
Dies stellt sicher, dass nur authentifizierte Benutzer neue Konten erstellen k?nnen. Der n?chste Schritt besteht darin, den Endpunkt /contacts
zu schützen. ?ffnen Sie einfach die Datei services/contacts/contacts.hooks.js
und aktualisieren Sie entsprechend:
starten Sie den Federn -Server neu, damit Code?nderungen wirksam werden. Wenn Sie versuchen, die Anfrage von Listenkontakten auszuführen, erhalten Sie die folgende Antwort:
Um sich zu authentifizieren, müssen Sie den Tr?gertoken wie zuvor einrichten. Sobald Sie dies getan haben, k?nnen Sie eine Anfrage senden und sollten Ihre Kontaktliste erhalten. Bitte beachten Sie, dass das Token, das Sie zuvor erhalten haben, an einem Tag verfallen wird. Für die Effizienz ist es am besten, Umgebungsvariablen zu verwenden, um die Aktualisierung aller API -Anforderungsparameter gleichzeitig zu erleichtern. Beim Erstellen einer Front-End-Anwendung müssen Sie dieses Token im lokalen Speicher speichern. Verwenden Sie keine Cookies. Andernfalls ist Ihre Bewerbung anf?llig für CSRF -Angriffe. Schauen Sie sich die Sicherheitsdokumentation der Feathers für andere Sicherheitsrisiken an, die Sie kennen sollten.
Jetzt, da Sie die Authentifizierung eingerichtet haben, erhalten Sie alle neuen Dienste, die sp?ter erstellt wurden, die M?glichkeit, neue Endpunkte zu schützen. Schauen wir uns das letzte Thema dieses Tutorials im n?chsten Abschnitt an.
Haken:
Hook ist eine Middleware -Funktion, die zuvor, nach oder wenn ein Fehler auftritt. Sie werden h?ufig verwendet, um Protokollierung zu behandeln, Zugriff zu beschr?nken, Felder zu schützen, verwandte Unternehmen zu füllen, Benachrichtigungen zu senden und vieles mehr. Wenn Sie sich services/users/users.hooks.js
ansehen, k?nnen Sie einige eingebaute Federn-Haken verwenden. Wir werden unsere eigenen benutzerdefinierten Haken erstellen. Stoppen Sie zun?chst den Server und l?schen Sie die Tabelle data/contacts.db
Datenbank. Verwenden Sie als n?chstes den folgenden Befehl, um einen neuen Haken zu generieren:
npm install -g @feathersjs/cli
Erstellen Sie benutzerdefinierte Hooks mit den folgenden Optionen process-contact
:
Was wir in diesem Haken tun m?chten, ist, zwei neue Felder vor dem Verarbeiten der Anforderung "Kontakt erstellen" zu injizieren.
-
createdBy
: Link zum derzeit angemeldeten Benutzer über_id
-
createdOn
hooks/process-contact.js
populate-user
hooks/populate-user
: Fügen Sie Erstellungsdatum hinzu ?ffnen Sie die Datei und aktualisieren Sie die Datei wie folgt: Erstellen Sie als n?chstes einen weiteren Hook , mit dem das Benutzerobjekt auf Anfrage an den Kontaktdatensatz angeschlossen wird. Befolgen Sie die Anweisungen im folgenden Screenshot: ?ffnen Sie die Datei und fügen Sie den folgenden Code ein: Jetzt k?nnen Sie den Server starten. Verwenden Sie die Kontaktanforderung erstellen, um drei Kontakte erneut zu erstellen. Wenn Sie kein Tr?gertoken eingerichtet haben, stellen Sie ihn fest. Andernfalls erhalten Sie einen Autorisierungsfehler. Dies ist die Art der Antwort, die Sie beim Erstellen eines neuen Kontakts erhalten sollten: Zusammenfassung:
Ich hoffe, Sie haben jetzt gelernt, wie Sie schnell Ihren eigenen API -Server erstellen k?nnen. Wir haben nur die Grundlagen angesprochen und Sie sollten den vollst?ndigen Leitfaden lesen, um weitere Funktionen zu finden, die Federn bieten k?nnen, mit denen Sie mit minimalem Aufwand erweiterte Funktionen erzielen k?nnen. Sie sollten auch die Awesome Federn -Seite ansehen, die viele Ressourcen enth?lt. Unabh?ngig davon, ob Sie Plugins, Projektbeispiele oder Tutorials ben?tigen, finden Sie den Link dort m?glicherweise. Sie sollten auch die Federn-Plus-CLI überprüfen, eine verbesserte Version von Federn. Darüber hinaus werden neue Funktionen hinzugefügt, die die Federn CLI bereits bereitgestellt hat, z. B. Code für die Aussaat und GraphQL -Unterstützung.
Wenn Sie das contacts-api
-Projekt weiter verbessern m?chten, empfehle ich Ihnen, eine neue Front-End-Anwendung mit dem Framework Ihrer Wahl zu erstellen. Erstellen Sie Anmeldebildschirme und CRUD -Seiten für /contacts
und /users
Endpunkte. Genie?en Sie den Spa? der Umsetzung der Herausforderungen.
H?ufig gestellte Fragen zu Federn.js:
-
Was ist federn.js? federn.js ist ein Web-Framework zum Erstellen von Echtzeitanwendungen. Es wurde so konzipiert, dass es leicht, flexibel und einfach zu bedienen ist. Es bietet eine Reihe von Werkzeugen und Mustern zum Erstellen skalierbarer und wartbarer serverseitiger Anwendungen.
-
Welche Programmiersprachen werden von federn.js unterstützt? federn.js verwendet haupts?chlich JavaScript auf der Server- und Client -Seite. Es kann mit node.js auf dem Server verwendet werden und unterstützt verschiedene JavaScript -Frameworks im Client, einschlie?lich Frameworks wie React, Angular und Vue.js.
-
Was sind die Schlüsselmerkmale von federn.js? federn.js enth?lt Echtzeit-Funktionen (über WebSocket und Rastful API), serviceorientierte Architektur, Unterstützung für verschiedene Datenbanken (MongoDB, PostgreSQL usw.), Authentifizierungs- und Autorisierungsmechanismen und Plug-in-Systeme für Erweiterungen.
-
Wie gehen Feathers.js mit Echtzeit-Kommunikation um? federn.js verwendet die Funktionen von Websockets, um eine Echtzeitkommunikation zu erreichen. Es bietet eine Echtzeit-API von der Box, mit der Clients Echtzeit-Updates empfangen k?nnen, wenn Daten auf dem Server ?ndert.
-
Kann ich Feathers.js für das Server-Side-Rendering (SSR) verwenden? Obwohl Feathers.js haupts?chlich zum Erstellen von APIs und Echtzeitanwendungen verwendet wird, kann es in Verbindung mit anderen Frameworks wie Next.js oder nuxt.js verwendet werden, um die serverseitige Rendering (SSR) von Webanwendungen zu implementieren.
Alle Bildlinks behalten das Originalformat.
Das obige ist der detaillierte Inhalt vonEin Anf?ngerleitfaden zu federn.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Es gibt drei g?ngige M?glichkeiten, HTTP-Anforderungen in Node.js zu initiieren: Verwenden Sie integrierte Module, Axios und Knotenfetch. 1. Verwenden Sie das integrierte HTTP/HTTPS-Modul ohne Abh?ngigkeiten, das für grundlegende Szenarien geeignet ist, jedoch eine manuelle Verarbeitung von Datengen?hten und Fehlerüberwachung erfordert, z. 2.Axios ist eine auf Versprechen basierende Bibliothek von Drittanbietern. Es verfügt über eine kurze Syntax und leistungsstarke Funktionen, unterstützt Async/Auseait, automatische JSON -Konvertierung, Interceptor usw. Es wird empfohlen, asynchrone Anforderungsvorg?nge zu vereinfachen. 3.Node-Fetch bietet einen Stil ?hnlich dem Browser-Abruf, basierend auf Versprechen und einfacher Syntax

JavaScript -Datentypen sind in primitive Typen und Referenztypen unterteilt. Zu den primitiven Typen geh?ren String, Anzahl, Boolesche, Null, undefiniertes und Symbol. Die Werte sind unver?nderlich und Kopien werden bei der Zuweisung von Werten kopiert, sodass sie sich nicht gegenseitig beeinflussen. Referenztypen wie Objekte, Arrays und Funktionen speichern Speicheradressen, und Variablen, die auf dasselbe Objekt zeigen, wirkt sich gegenseitig aus. Typeof und Instanz k?nnen verwendet werden, um die Typen zu bestimmen, aber auf die historischen Probleme der TypeOfnull zu achten. Das Verst?ndnis dieser beiden Arten von Unterschieden kann dazu beitragen, einen stabileren und zuverl?ssigeren Code zu schreiben.

Hallo, JavaScript -Entwickler! Willkommen in den JavaScript -Nachrichten dieser Woche! Diese Woche konzentrieren wir uns auf: Oracas Markenstreit mit Deno, neue JavaScript -Zeitobjekte werden von Browsern, Google Chrome -Updates und einigen leistungsstarken Entwickler -Tools unterstützt. Fangen wir an! Der Markenstreit von Oracle mit dem Versuch von Deno Oracle, ein "JavaScript" -Marke zu registrieren, hat Kontroversen verursacht. Ryan Dahl, der Sch?pfer von Node.js und Deno, hat eine Petition zur Absage der Marke eingereicht, und er glaubt, dass JavaScript ein offener Standard ist und nicht von Oracle verwendet werden sollte

Cacheapi ist ein Tool, das der Browser zur Cache -Netzwerkanfragen bereitstellt, das h?ufig in Verbindung mit dem Servicearbeiter verwendet wird, um die Leistung der Website und die Offline -Erfahrung zu verbessern. 1. Es erm?glicht Entwicklern, Ressourcen wie Skripte, Stilbl?tter, Bilder usw. Zu speichern; 2. Es kann die Cache -Antworten entsprechend den Anfragen übereinstimmen. 3. Es unterstützt das L?schen bestimmter Caches oder das L?schen des gesamten Cache. 4.. Es kann Cache -Priorit?ts- oder Netzwerkpriorit?tsstrategien durch Servicearbeiter implementieren, die sich auf Fetch -Ereignisse anh?ren. 5. Es wird h?ufig für die Offline -Unterstützung verwendet, die wiederholte Zugriffsgeschwindigkeit, die Vorspannungs -Schlüsselressourcen und den Inhalt des Hintergrundaktualisierungss beschleunigen. 6. Wenn Sie es verwenden, müssen Sie auf die Cache -Versionskontrolle, Speicherbeschr?nkungen und den Unterschied zum HTTP -Caching -Mechanismus achten.

Versprechen ist der Kernmechanismus für den Umgang mit asynchronen Operationen in JavaScript. Das Verst?ndnis von Kettenanrufen, Fehlerbehebung und Kombination ist der Schlüssel zum Beherrschen ihrer Anwendungen. 1. Der Kettenaufruf gibt ein neues Versprechen durch .then () zurück, um asynchrone Prozessverkampferung zu realisieren. Jeder. Dann () erh?lt das vorherige Ergebnis und kann einen Wert oder ein Versprechen zurückgeben; 2. Die Fehlerbehandlung sollte .Catch () verwenden, um Ausnahmen zu fangen, um stille Ausf?lle zu vermeiden, und den Standardwert im Fang zurückgeben, um den Prozess fortzusetzen. 3. Combinatoren wie Promise.All () (erfolgreich erfolgreich erfolgreich nach allen Erfolg), Versprechen.Race () (Die erste Fertigstellung wird zurückgegeben) und Versprechen.Allsettled () (Warten auf alle Fertigstellungen)

JavaScript-Array-integrierte Methoden wie .Map (), .filter () und .Reduce () k?nnen die Datenverarbeitung vereinfachen. 1) .Map () wird verwendet, um Elemente eins in eins um Neuarrays zu konvertieren; 2) .Filter () wird verwendet, um Elemente durch Bedingung zu filtern; 3) .Reduce () wird verwendet, um Daten als einzelner Wert zu aggregieren; Missbrauch sollte bei der Verwendung vermieden werden, was zu Nebenwirkungen oder Leistungsproblemen führt.

Die Ereignisschleife von JavaScript verwaltet asynchrone Vorg?nge, indem sie Call -Stapel, Webapis und Task -Warteschlangen koordinieren. 1. Der Anrufstack führt synchronen Code aus, und wenn er auf asynchrone Aufgaben begegnet, wird er zur Verarbeitung an Webapi übergeben. 2. Nachdem das Webapi die Aufgabe im Hintergrund abgeschlossen hat, wird der Rückruf in die entsprechende Warteschlange (Makroaufgabe oder Micro -Aufgabe) eingebaut. 3. Die Ereignisschleife prüft, ob der Anrufstapel leer ist. Wenn es leer ist, wird der Rückruf aus der Warteschlange herausgenommen und zur Ausführung in den Anrufstapel geschoben. V. 5. Das Verst?ndnis der Ereignisschleife hilft zu vermeiden, den Haupt -Thread zu blockieren und die Codeausführungsreihenfolge zu optimieren.

Ereignisblasen verbreiten sich vom Zielelement nach au?en zum Vorfahrknoten aus, w?hrend Ereignisfassungen sich von der ?u?eren Schicht nach innen zum Zielelement ausbreiten. 1. Ereignisblasen: Nach dem Klicken auf das untergeordnete Element l?st das Ereignis den H?rer des übergeordneten Elements nach oben aus. Nach dem Klicken auf die Schaltfl?che gibt es beispielsweise zuerst die untergeordnete und dann entzündete Eltern aus. 2. Ereigniserfassung: Stellen Sie den dritten Parameter auf True ein, so dass der H?rer in der Erfassungsstufe ausgeführt wird, z. B. das Ausl?sen des Capture -Listeners des übergeordneten Elements, bevor Sie auf die Schaltfl?che klicken. 3. Praktische Verwendungszwecke umfassen ein einheitliches Management von Ereignissen für Kinderelemente, Vorverarbeitung und Leistungsoptimierung von Abfangen. V.
