Welchen Query Builder/ORM sollten Sie für Nodejs verwenden?

Blog

Was ist ein ORM? ORM-Lösungen sind nützlich, um die datengesteuerte API-Entwicklung zu erleichtern. Benutzer haben konkrete Bedürfnisse, die das Datenmodell einer Anwendung bestimmen. In der Legacy-Entwicklung wird diese Datenarchitektur typischerweise mithilfe von Datenbankskripten wie SQL-Skripten implementiert und versioniert. Eine separate Bibliothek wird dann für die Serveranwendung verwendet, um CRUD-Aktionen in der Datenbank auszuführen.



Warum ist es so wichtig?

ORMs arbeiten als High-Level-API zur Ausführung von CRUD, und heutzutage ermöglichen uns hochwertige ORMs auch, die Daten durch Code zu initialisieren. Komplexe Datenmanipulation, -bereinigung usw. sind im Code oft einfacher. Während dediziertes Extrahieren, Transformieren und Laden ( ETL ) Tools existieren, können dieselben ETL-Aufgaben einfach in ORM implementiert werden.

Das Implementieren von Extrahieren, Transformieren und Laden mit Code ermöglicht es einem System, Daten aus sehr unterschiedlichen Quellen einfacher zu integrieren. SQL-Datenbanken verschiedener Geschmacksrichtungen, NoSQL-Daten, Dateisystemdaten und Daten von Drittanbietern können alle in einer einzigen Sprache mit einem JavaScript-ORM integriert werden.



Schließlich ermöglicht die codeorientierte Datenkontrolle einem System auch, die Datennutzung zur Laufzeit oder im Build-Prozess zu implementieren und die Nutzung während des Entwicklungsprozesses nach Bedarf flexibel anzupassen.

Um es neu zu formulieren, ORMs helfen dabei, Datenzuordnungen zwischen Ihrem Code und der Datenbank zu abstrahieren, wodurch Datenabfragen und -manipulation erleichtert werden. Es kann auch helfen, die zugrunde liegende Datenbank-Engine einfach zu ändern, ohne (meistens) Code zu ändern. Im Folgenden sind einige ORMs aufgeführt, die Sie mit nodejs verwenden können.




Sollte ich ORM wie Sequelize für PostgreSQL/Node.js verwenden?

Zunächst hängt es vom Umfang Ihres Projekts und Ihres Teams ab, das an diesem Projekt arbeitet. Wenn Sie ein kleines Projekt haben, das später möglicherweise weniger Anpassungen erfordert, können Sie einfach die abfragebasierte Ausführung durchführen. Wenn Sie jedoch ein großes Projekt mit Anpassungen in einem späteren Stadium haben, versuchen Sie, sich oder Ihr Team so zu entwickeln, dass ein ORM wie Sequelize verwendet wird.

Der Gesamtprozess für den Wechsel zu ORM ist also:

1. Sie sollten die Abfragen und Beziehungen des Datenbankschemas gut verstehen.

2. Sie sollten die Sprache verstehen, die Ihr ORM unterstützt. Für Node.js sollte man also über ein gutes Verständnis von grundlegendem Javascript, Callbacks und Promises verfügen.

3. Nun, wenn Sie die Abfragen gut kennen und auch mit ORM arbeiten können. Sie beschleunigen Ihren Entwicklungsprozess um ein Vielfaches.

Vorteile:

  • Standardisierung – ORMs haben normalerweise eine einzige Schemadefinition im Code. Dies macht es sehr klar, was das Schema ist, und es ist sehr einfach, es zu ändern.
  • Keine Notwendigkeit, SQL zu lernen – Abfragen werden in einfachem JavaScript geschrieben.
  • tragbar – mit einem ORM ist es einfach, zwischen Datenbanken zu migrieren (wir haben das tatsächlich bereits getan, indem wir einige ältere PostgreSQL-Datenbanken mit der MySQL-Standardisierung zu Amazon Aurora verschoben haben). Da Ihr gesamter Code das ORM verwendet, müssen Sie nur das ORM ändern / neu implementieren, um die DB zu ersetzen. Viele ORMs (wie Sequalize) unterstützen sofort mehrere gängige Datenbanken.

Nachteile:

  • **Es ist schwierig, komplexe Abfragen zu implementieren **– während ORMs die Abfrage vereinfachen – insbesondere wenn Sie keine Erfahrung mit SQL haben – können sie sich beim Schreiben komplexer Abfragen (mit Aggregationen, Unterabfragen, Joins usw.) als schwieriger und unflexibel erweisen. ). (Ich weiß, dass es unterstützt wird, aber es fühlt sich im Vergleich zu SQL oft sehr umständlich an).
  • Kann ineffizient sein – Aufgrund des vorherigen Punktes können ORMs zu ineffizienten Abfragen führen (Sie schreiben eine Abfrage, die zum ORM passt, keine einfache / effiziente Abfrage). Da Sie kein SQL verwenden, wird auch die Abfrageausführung unklar (kann SQL nicht ausführen, erklären und sofort verstehen, was der Abfrageplan ist).
  • Neue Sprache – Wenn Sie mit SQL vertraut sind, kann sich ein ORM wie das Erlernen einer neuen Abfragesprache anfühlen.

_Endeffekt _ – für kleinere Projekte / Projekte mit sehr komplexen Abfragen würde ich empfehlen, bei SQL zu bleiben. Bei größeren Projekten mit größeren Teams, die die Codebasis berühren und Schemaänderungen vornehmen, kann ein gutes ORM lebensrettend sein.

Im Folgenden sind einige beliebte ORM:

1. Sequelize

Sequelize ist ein weiteres ORM für Node.js und io.js (die endlich verschmelzen ). Es unterstützt PostgreSQL, MySQL, MariaDB, SQLite und MSSQL und bietet solide Transaktionsunterstützung, Beziehungen, Lesereplikation und

mehr. Sie können es installieren, indem Sie die folgenden Befehle ausführen:

# Sequelize installieren $ npm install --save Sequelize

Waterline ist eine neue Art von Regalbediengerät.

Es bietet eine einheitliche API für den Zugriff auf Daten aus verschiedenen Arten von Datenbanken, Protokollen und APIs von Drittanbietern. Das bedeutet, dass Sie denselben Code schreiben, um Dinge wie Benutzer abzurufen und zu speichern, unabhängig davon, ob sie in Redis, mySQL, LDAP, MongoDB oder Postgres leben.

Waterline ist bestrebt, die besten Teile von ORMs wie ActiveRecord, Hibernate und Mongoose zu übernehmen, jedoch mit einer neuen Perspektive und Betonung auf Modularität, Testbarkeit und Konsistenz über Adapter hinweg.

Flatter-Permission-Handler

Ursprünglich veröffentlicht bei socialdribbler.com

Mehr erfahren

MERN Stack von vorne nach hinten: Full Stack React, Redux & Node.js

Der komplette Node.js-Entwicklerkurs (3. Auflage)

Lernen und verstehen Sie NodeJS

NodeJS - The Complete Guide (inkl. MVC, REST APIs, GraphQL)

React Node FullStack - Soziales Netzwerk von Grund auf bis zur Bereitstellung

Node.js Absolute Beginners Guide - Node von Grund auf lernen

#node-js

socialdribbler.com

Welchen Query Builder/ORM sollten Sie für Nodejs verwenden?

Was ist ein ORM? ORM-Lösungen sind nützlich, um die datengesteuerte API-Entwicklung zu erleichtern. Benutzer haben konkrete Bedürfnisse, die das Datenmodell einer Anwendung bestimmen. In der Legacy-Entwicklung wird diese Datenarchitektur typischerweise mithilfe von Datenbankskripten wie SQL-Skripten implementiert und versioniert. Eine separate Bibliothek wird dann für die Serveranwendung verwendet, um CRUD-Aktionen in der Datenbank auszuführen.