© saicle/Shutterstock.com
PHP Magazin
Object-Relational Mapping für Node.js

Node.js-Module: node-orm2

In dieser Reihe möchte ich Ihnen in jeder Ausgabe ein nützliches Modul für Node.js vorstellen. In dieser Ausgabe beginne ich mit node-orm2.

Sebastian Springer


Der Zugriff von Node.js auf eine Datenbank stellt kein sonderlich großes Problem dar, da für nahezu jede Datenbank ein Treiber für Node.js existiert. So können Sie beispielsweise MySQL, MSSQL, Redis, MogoDB oder DB2 anbinden, um nur einige wenige zu nennen. In vielen Fällen reicht es aus, die Abfragestatements von Hand zu formulieren. Manchmal wünscht man sich jedoch eine zusätzliche Abstraktionsschicht zwischen der Datenbank und dem eigenen Quellcode. Gibt es kein Doctrine für Node.js? Die Antwort ist leider nein. Allerdings existieren andere Implementierungen von Object-Relational Mapping oder kurz ORM. Eines davon heißt „node-orm2“.

R. I. P. Node.js Der König ist tot – lang lebe der König! So oder so ähnlich lässt sich die Situation rund um den Node.js-Fork io.js zusammenfassen. Alle Hintergründe unter http://bit.ly/12UZLeM und http://bit.ly/1vICcwI.

Dieses als NPM-Paket verfügbare Modul ist Open Source, der Quellcode ist auf GitHub unter [1] verfügbar. Installiert wird das Modul mit dem Kommando npm install orm. Aktuell werden MySQL, PostgreSQL, Amazon Redshift, SQLite und teilweise MongoDB unterstützt. Damit Sie das ORM-Modul benutzen können, benötigen Sie den passenden Treiber für Ihre Datenbank, den Sie vor dem ORM laden sollten. Das Modul erkennt über den Connection-String die Datenbank und nutzt den geladenen Treiber für die Verbindung.

Die Verbindung

Das Modul wird über das Modulsystem von Node.js mit der require-Funktion geladen. Über das zurückgegebene Objekt bauen Sie dann die Verbindung zur Datenbank auf: orm.connect('sqlite:db/app.db', function(err, db) {});. Diese Codezeile stellt eine Verbindung zu einer lokalen SQLite-Datenbank her. Diese Operation ist asynchron, was bedeutet, dass Sie eine Callback-Funktion registrieren müssen. Das erste Argument ist ein Fehlerobjekt, das normalerweise den Wert null aufweist und nur im Fehlerfall einen abweichenden Wert enthält. Das zweite Argument ist der Datenbank-Handle, mit dem Sie weiterarbeiten.

Die Definition

Haben Sie sich erst einmal erfolgreich mit der Datenbank verbunden, definieren Sie mit der define-Methode das Aussehen Ihrer Tabellen. Gehen Sie von einer einfachen Tabelle mit drei Feldern aus, könnte eine Definition folgendermaßen aussehen:

var User = db.define('user', { id: Number, name: String, age: Number});

Über das User-Objekt können Sie dann mit der user-Tabelle arbeiten.

Das API

Das ORM-Modul stellt Ihnen eine ganze Reihe von Methoden zur Verfügung, mit denen Sie Datensätze generieren, a...

PHP Magazin
Object-Relational Mapping für Node.js

Node.js-Module: node-orm2

In dieser Reihe möchte ich Ihnen in jeder Ausgabe ein nützliches Modul für Node.js vorstellen. In dieser Ausgabe beginne ich mit node-orm2.

Sebastian Springer


Der Zugriff von Node.js auf eine Datenbank stellt kein sonderlich großes Problem dar, da für nahezu jede Datenbank ein Treiber für Node.js existiert. So können Sie beispielsweise MySQL, MSSQL, Redis, MogoDB oder DB2 anbinden, um nur einige wenige zu nennen. In vielen Fällen reicht es aus, die Abfragestatements von Hand zu formulieren. Manchmal wünscht man sich jedoch eine zusätzliche Abstraktionsschicht zwischen der Datenbank und dem eigenen Quellcode. Gibt es kein Doctrine für Node.js? Die Antwort ist leider nein. Allerdings existieren andere Implementierungen von Object-Relational Mapping oder kurz ORM. Eines davon heißt „node-orm2“.

R. I. P. Node.js Der König ist tot – lang lebe der König! So oder so ähnlich lässt sich die Situation rund um den Node.js-Fork io.js zusammenfassen. Alle Hintergründe unter http://bit.ly/12UZLeM und http://bit.ly/1vICcwI.

Dieses als NPM-Paket verfügbare Modul ist Open Source, der Quellcode ist auf GitHub unter [1] verfügbar. Installiert wird das Modul mit dem Kommando npm install orm. Aktuell werden MySQL, PostgreSQL, Amazon Redshift, SQLite und teilweise MongoDB unterstützt. Damit Sie das ORM-Modul benutzen können, benötigen Sie den passenden Treiber für Ihre Datenbank, den Sie vor dem ORM laden sollten. Das Modul erkennt über den Connection-String die Datenbank und nutzt den geladenen Treiber für die Verbindung.

Die Verbindung

Das Modul wird über das Modulsystem von Node.js mit der require-Funktion geladen. Über das zurückgegebene Objekt bauen Sie dann die Verbindung zur Datenbank auf: orm.connect('sqlite:db/app.db', function(err, db) {});. Diese Codezeile stellt eine Verbindung zu einer lokalen SQLite-Datenbank her. Diese Operation ist asynchron, was bedeutet, dass Sie eine Callback-Funktion registrieren müssen. Das erste Argument ist ein Fehlerobjekt, das normalerweise den Wert null aufweist und nur im Fehlerfall einen abweichenden Wert enthält. Das zweite Argument ist der Datenbank-Handle, mit dem Sie weiterarbeiten.

Die Definition

Haben Sie sich erst einmal erfolgreich mit der Datenbank verbunden, definieren Sie mit der define-Methode das Aussehen Ihrer Tabellen. Gehen Sie von einer einfachen Tabelle mit drei Feldern aus, könnte eine Definition folgendermaßen aussehen:

var User = db.define('user', { id: Number, name: String, age: Number});

Über das User-Objekt können Sie dann mit der user-Tabelle arbeiten.

Das API

Das ORM-Modul stellt Ihnen eine ganze Reihe von Methoden zur Verfügung, mit denen Sie Datensätze generieren, a...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang