Skalierbare, effiziente Anwendungen zu entwickeln kann eine Herausforderung sein, oder? Vor allem wenn man weniger Zeit hat oder an einem Hackathon teilnimmt. Was wäre, wenn ich Ihnen sagen würde, dass es eine Backend-Lösung gibt, die diesen Prozess vereinfachen kann?
Kürzlich habe ich an einem Projekt gearbeitet, bei dem ich das Convex-Backend zum ersten Mal verwendet habe, und wissen Sie was, es fühlt sich einfach großartig an.
Convex ist mehr als nur eine Datenbank; Es handelt sich um eine umfassende Backend-Lösung, die auf moderne Entwickler zugeschnitten ist. Es bietet alles von Cloud-Funktionen in TypeScript bis hin zur Echtzeit-Datensynchronisierung, sodass Sie sich ganz auf Ihren Frontend-Code konzentrieren können. Dies hat zu seiner wachsenden Beliebtheit beigetragen.
Was zeichnet es aus?
- Datensynchronisierung in Echtzeit: Das erstaunlichste Feature, das ich daran am meisten liebe, ist, dass die Datensynchronisierung in Echtzeit bedeutet, dass es mühsam ist, das Socket-Io einzurichten und es dann vom Backend zum Frontend zu senden. Stattdessen werden hier Daten in Echtzeit zwischen Clientanwendungen und der Datenbank synchronisiert, was sie ideal für kollaborative oder Live-Anwendungen macht.
- Serverlose Funktionen: Convex bietet serverlose Funktionen, sogenannte „Convex Functions“, mit denen Sie Backend-Logik ausführen können, ohne Server verwalten zu müssen. Diese Funktionen sind in JavaScript oder TypeScript geschrieben.
- Integrierte Authentifizierung: Obwohl es Dienste wie clerk, next auth gibt, die super gut mit Next.js Typoskript funktionieren, unterstützt Convex auch die Benutzerauthentifizierung, einschließlich Drittanbietern, sodass Sie problemlos Benutzeranmeldungen zu Anwendungen hinzufügen können, ohne ein benutzerdefiniertes Authentifizierungssystem einzurichten.
- Skalierbare Datenbank: Die Datenbank von Convex ist automatisch skalierbar und so konzipiert, dass sie eine hohe Parallelität unterstützt, sodass sie große Datensätze und Verkehrsspitzen bewältigen kann.
- Schemaloses Datenmodell: Convex verwendet ein schemaloses Datenmodell, das Ihnen die Speicherung flexibler Datenstrukturen ermöglicht, was für sich schnell entwickelnde Projekte von Vorteil ist.
Dies sind die Funktionen, die ich persönlich verwendet habe, und es gibt viele weitere Funktionen wie ACID-Transaktionen, TypeScript-Unterstützung, Sicherheit und Zugriffskontrolle, Automatisch Caching und Optimierung, können Sie auf jeden Fall ausprobieren.
Jetzt wollen wir sehen, wie der Ansatz im normalen Backend und in einem konvexen Backend durch eine einfache getGroupMembers-Funktion ist.
Lassen Sie uns eine Backend-Funktion mit MongoDB und Node.js erstellen
- Zuerst überprüfen wir zunächst die Identität des Benutzers durch ein typisches JWT und geben bei Fehlern einfach 401 Unauthorized Response zurück.
const identity = await verifyToken(req.headers.authorization); if (!identity) { res.status(401).send("Unauthorized"); return; }
- Sobald der Benutzer authentifiziert ist, rufen wir die Konversationsdetails ab. In diesem Schritt wird die Konversationssammlung in MongoDB anhand der bereitgestellten Konversations-ID abgefragt.
const conversation = await db.collection("conversations").findOne({ _id: conversationId }); if (!conversation) { res.status(404).send("Conversation not found"); return; }
- Als nächstes rufen wir alle Benutzer aus der Benutzersammlung ab und filtern nach denen, deren IDs mit den Teilnehmern der Konversation übereinstimmen.
const users = await db.collection("users").find().toArray(); const groupMembers = users.filter(user => conversation.participants.includes(user._id));
- Schließlich geben wir die Liste der Gruppenmitglieder an den Client zurück. Diese Daten umfassen nur die Benutzer, die an der angegebenen Konversation teilnehmen.
res.status(200).send(groupMembers);
Hier ist das darstellbare Diagramm des obigen Codeausschnitts
Lassen Sie uns eine Backend-Funktion mit Convex erstellen
- Convex bietet eine integrierte Benutzerauthentifizierung mit ctx.auth.getUserIdentity(), wodurch es einfach ist, zu überprüfen, ob ein Benutzer angemeldet ist. Wenn der Benutzer nicht authentifiziert ist, werfen wir einen ConvexError aus, der automatisch „Unauthorized“ zurückgibt. Antwort an den Kunden.
const identity = await ctx.auth.getUserIdentity(); if (!identity) { throw new ConvexError("Unauthorized"); }
- Mit Convex werden Datenbankabfragen vereinfacht. Mithilfe von ctx.db.query rufen wir die Konversation ab, indem wir nach einer Übereinstimmung mit der bereitgestellten Konversations-ID filtern.
const conversation = await ctx.db.query("conversations") .filter((q) => q.eq(q.field("_id"), args.conversationId)) .first(); if (!conversation) { throw new ConvexError("Conversation not found"); }
- Convex ermöglicht es uns, alle Benutzer mit ctx.db.query("users").collect() abzufragen. Anschließend verwenden wir einen Filter, um nur Benutzer auszuwählen, die an der Konversation teilnehmen. Die integrierten Datenabrufmethoden von Convex erleichtern die Verwaltung von Sammlungen, ohne sich um die manuelle Handhabung von Datenbankverbindungen kümmern zu müssen.
const users = await ctx.db.query("users").collect(); const groupMembers = users.filter((user) => conversation.participants.includes(user._id));
- Das ist alles. Da Convex die Antwortverwaltung übernimmt, werden die Daten durch einfaches Zurückgeben von „groupMembers“ aus der Funktion an den Client gesendet.
return groupMembers;
Und hier ist das insgesamt vereinfachte Erklärungsdiagramm, wie das Backend konvex verarbeitet wird -
Wie habe ich Convex in meinen Projekten verwendet?
Ich habe gerade das FreeCodeCamp MERN Stack Book Store Project mit Next.js, TypeScript und vor allem dem Convex-Backend neu erstellt.
Wenn Sie also eine gute Vorstellung davon haben möchten, wie Sie das Convex-Backend verwenden, können Sie meinen Github-Projekten folgen, bei denen ich meinen Tech-Stack vom MERN-Stack auf NEXT.js TS Convex umgestellt habe.
????-????? (???? ?????) – Schauen Sie es sich hier an
????-?????_?????? (????.?? ?? ??????) – Schauen Sie es sich hier an
Wenn Sie möchten, können Sie auch meinen LinkedIn-Beitrag dazu besuchen ??.
Abschluss
Kurz gesagt, in einem herkömmlichen Backend-Setup kümmern Sie sich manuell um Authentifizierung, Datenbankverbindungen, Abfragen und Fehler, was zu komplexerem und ausführlicherem Code führt. In Convex werden diese Aufgaben abstrahiert, was die Authentifizierung, Datenbankabfrage und Fehlerverwaltung mit minimalem Code vereinfacht und so eine schnellere Entwicklung und saubereren Code ermöglicht.
Viel Spaß beim Lernen ☺☺!!
Das obige ist der detaillierte Inhalt vonBackend-Einfachheit erschließen: Skalierbare Apps mit Convex erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

JavaScript -Kerndatentypen sind in Browsern und Knoten.js konsistent, werden jedoch unterschiedlich als die zusätzlichen Typen behandelt. 1) Das globale Objekt ist ein Fenster im Browser und global in node.js. 2) Node.js 'eindeutiges Pufferobjekt, das zur Verarbeitung von Binärdaten verwendet wird. 3) Es gibt auch Unterschiede in der Leistung und Zeitverarbeitung, und der Code muss entsprechend der Umgebung angepasst werden.

JavaScriptUSESTWOTYPESOFCOMMENMENTEN: Einzelzeilen (//) und Multi-Linie (//). 1) Verwendung // Forquicknotesorsingle-Linexplanationen.2 Verwendung // ForlongerExPlanationsCompomentingingoutblocks-

Der Hauptunterschied zwischen Python und JavaScript sind die Typ -System- und Anwendungsszenarien. 1. Python verwendet dynamische Typen, die für wissenschaftliche Computer- und Datenanalysen geeignet sind. 2. JavaScript nimmt schwache Typen an und wird in Front-End- und Full-Stack-Entwicklung weit verbreitet. Die beiden haben ihre eigenen Vorteile bei der asynchronen Programmierung und Leistungsoptimierung und sollten bei der Auswahl gemäß den Projektanforderungen entschieden werden.

Ob die Auswahl von Python oder JavaScript vom Projekttyp abhängt: 1) Wählen Sie Python für Datenwissenschafts- und Automatisierungsaufgaben aus; 2) Wählen Sie JavaScript für die Entwicklung von Front-End- und Full-Stack-Entwicklung. Python ist für seine leistungsstarke Bibliothek in der Datenverarbeitung und -automatisierung bevorzugt, während JavaScript für seine Vorteile in Bezug auf Webinteraktion und Full-Stack-Entwicklung unverzichtbar ist.

Python und JavaScript haben jeweils ihre eigenen Vorteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1. Python ist leicht zu erlernen, mit prägnanter Syntax, die für Datenwissenschaft und Back-End-Entwicklung geeignet ist, aber eine langsame Ausführungsgeschwindigkeit hat. 2. JavaScript ist überall in der Front-End-Entwicklung und verfügt über starke asynchrone Programmierfunktionen. Node.js macht es für die Entwicklung der Vollstapel geeignet, die Syntax kann jedoch komplex und fehleranfällig sein.

JavaScriptisnotbuiltoncorc; Es ist angehört, dass sich JavaScriptWasdedeSthatrunsonGineoFtencninc.

JavaScript kann für die Entwicklung von Front-End- und Back-End-Entwicklung verwendet werden. Das Front-End verbessert die Benutzererfahrung durch DOM-Operationen, und die Back-End-Serveraufgaben über node.js. 1. Beispiel für Front-End: Ändern Sie den Inhalt des Webseitentextes. 2. Backend Beispiel: Erstellen Sie einen Node.js -Server.

Die Auswahl von Python oder JavaScript sollte auf Karriereentwicklung, Lernkurve und Ökosystem beruhen: 1) Karriereentwicklung: Python ist für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet, während JavaScript für die Entwicklung von Front-End- und Full-Stack-Entwicklung geeignet ist. 2) Lernkurve: Die Python -Syntax ist prägnant und für Anfänger geeignet; Die JavaScript -Syntax ist flexibel. 3) Ökosystem: Python hat reichhaltige wissenschaftliche Computerbibliotheken und JavaScript hat ein leistungsstarkes Front-End-Framework.


Heiße KI -Werkzeuge

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

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

Undress AI Tool
Ausziehbilder kostenlos

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

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Dreamweaver Mac
Visuelle Webentwicklungstools

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!
