Ich schreibe ein Projekt neu, um Node.js zu verwenden. Ich möchte MySQL weiterhin als Datenbank verwenden (auch wenn es mir nichts ausmacht, das Schema neu zu schreiben). Ich suche ein einfach zu verwendendes ORM mit angemessener Leistung, das Caching, Viele-zu-Eins- und Viele-zu-Viele-Beziehungen unterstützt. Von den MySQL-ORMs, die ich finden konnte, scheinen Persistenz und Fortsetzung am ausgereiftesten zu sein. Hast du Erfahrung mit beidem? Was sind die relevanten Vor- und Nachteile, die ich bei meiner Entscheidung berücksichtigen sollte?
326
Antworten:
Darf ich Node ORM vorschlagen?
https://github.com/dresende/node-orm2
Es gibt eine Dokumentation in der Readme-Datei, die MySQL, PostgreSQL und SQLite unterstützt.
MongoDB ist seit Version 2.1.x verfügbar (veröffentlicht im Juli 2013)
UPDATE: Dieses Paket wird gemäß der README-Datei des Projekts nicht mehr verwaltet. Es empfiehlt stattdessen Bücherregal und Fortsetzung
quelle
Ich würde Sequelize wegen seiner hervorragenden Dokumentation wählen . Es ist nur eine ehrliche Meinung (ich habe MySQL mit Node nie so oft benutzt).
quelle
Bitte beachten Sie zunächst, dass ich keines von beiden verwendet habe (aber Node.js verwendet habe).
Beide Bibliotheken sind recht gut dokumentiert und verfügen über eine stabile API. Persistence.js scheint jedoch in mehr Projekten verwendet zu werden . Ich weiß allerdings nicht, ob alle es noch benutzen.
Der Entwickler von Sequelize bloggt manchmal darüber auf blog.depold.com . Wenn Sie Primärschlüssel als Fremdschlüssel verwenden möchten, benötigen Sie den in diesem Blogbeitrag beschriebenen Patch . Wenn Sie Hilfe für persistence.js möchten, gibt es eine Google-Gruppe, die sich diesem Thema widmet.
Aus den Beispielen geht hervor, dass Sequelize etwas JavaScript-ähnlicher ist (mehr Zucker) als persistance.js, aber weniger Datenspeicher unterstützt (nur MySQL, während persistance.js sogar In-Browser-Stores verwenden kann).
Ich denke, dass Sequelize der richtige Weg für Sie sein könnte, da Sie nur MySQL-Unterstützung benötigen. Wenn Sie jedoch einige praktische Funktionen benötigen (z. B. Suche) oder später eine andere Datenbank verwenden möchten, müssen Sie persistence.js verwenden.
quelle
Ein Hauptunterschied zwischen Sequelize und Persistence.js besteht darin, dass ersterer einen
STRING
Datentyp unterstützt , dVARCHAR(255)
. H. Es war mir wirklich unangenehm, alles zu machenTEXT
.quelle