Kernpunkte
In den letzten Jahren ist JavaScript immer beliebter. Im Laufe der Jahre haben die Leute versucht, diese beliebte Sprache viele Male auf die Serverseite anzuwenden. Einer der erfolgreichsten Versuche war Node.js, der der Community empfohlen wurde, um Serveranwendungen schnell zu schreiben. Das Verkaufsargument des Knotens ist sowohl hinsichtlich der Leistung als auch der Entwicklungszeit Geschwindigkeit. Mit dieser Popularität wächst die Community weiter und das Projekt profitiert auch von mehr Mitwirkenden, was zu hochwertigen Modulen wie Express.js führt.
damit die Leute mit dem Knoten ein komplettes Backend aufbauen. Eines der wichtigsten Dinge, die ein Backend -System tun sollte, ist, effektiv mit der Datenbank zu kommunizieren. Hier kommt die ORM -Software (Object Relationship Mapping) ins Spiel. Oft müssen Entwickler in der Programmiersprache und der SQL, die sie verwenden, um mit Datenbanken zu kommunizieren. ORM vereinfacht den Entwicklungsprozess, indem es Entwicklern ermöglicht, mit den Objekten in ihrer Programmiersprache mit der Datenbank zu interagieren. In diesem Artikel wird Orm vorgestellt und dem Buchhandel besondere Aufmerksamkeit schenkt.js orm.
Was ist Orm?
Wikipedia definiert Objektbeziehungskartierung als:
Eine Programmierungstechnik zum Konvertieren von Daten zwischen nicht kompatiblen Typsystemen in objektorientierten Programmiersprachen. Dies erstellt tatsächlich eine "virtuelle Objektdatenbank", die intern in der Programmiersprache verwendet werden kann.
In unserem Beispiel ist die Programmiersprache JavaScript, und das inkompatible System ist ein relationales Datenbanksystem wie MySQL. Dies bedeutet, dass die ORM -Bibliothek es uns ermöglichen sollte, mit der Datenbank auf die gleiche Weise wie die Interaktion mit herkömmlichen JavaScript -Objekten zu kommunizieren. Es gibt viele ORM -Bibliotheken in Node.js, und beliebte Bibliotheken umfassen Persistence.js, sequelize.js und bookself.js. In diesem Artikel wird ein Buchhandel vorgestellt.js.
bookself.js Beispiel
Datenbankinteraktionen drehen sich normalerweise um vier CRUD -Vorgänge - schöpfen, lesen, aktualisieren und löschen. Bookshelf.js bietet eine intuitive Möglichkeit, diese Vorgänge auszuführen. Erstellen Sie beispielsweise Operationen wie folgt:
new Post({name: 'New Article'}).save().then(function(model) { // ... });
Angenommen, Post ist ein Modell mit der entsprechenden Datenbanktabelle, und der Name ist eine Eigenschaft, die einer Spalte in der Datenbanktabelle entspricht.
In ähnlicher Weise lautet die Leseoperation wie folgt:
new Post({name: 'New Article'}).save().then(function(model) { // ... });
Bitte beachten Sie den dann im Code aufgerufen. Bookshelf.js unterstützt eine vielversprechende Schnittstelle. In diesem Fall wird dies bedeutet, dass die anonyme Funktion dann nur dann aufgerufen wird, wenn die Abfrage erfolgreich ist. Ein Modell ist ein generiertes JavaScript -Objekt, mit dem Sie den Benutzer zugreifen können. In unserem Beispiel gibt Model.get ('Gender') das Geschlecht des Benutzers zurück.
API mit buchscheibener.js und express.js
erstellenFür ein vollständigeres Beispiel sind wir angenommen, wir sind delegiert, um einen Blog mit den folgenden Ressourcen zu erstellen. JSON API:
// select * from `user` where `email` = 'user@mail.com' new User({email: 'user@mail.com'}) .fetch() .then(function(model) { console.log(model.get('gender')); });
und der Client hat bereits die folgende Tabelle:
<code>GET /api/article GET /api/article/:article_id POST /api/article</code>
Zunächst müssen wir Package.json verwenden, um die Express.js -Umgebung einzurichten:
create table article ( id int not null primary key, title varchar(100) null, body text null, author varchar(100) null );
Wir brauchen den Knex Query Builder, weil ein Bücherregal davon abhängt und wir Bluebird für das Versprechen benötigen. Unsere App.js -Struktur lautet wie folgt:
{ "name": "article_api", "description": "expose articles via JSON", "version": "0.0.1", "private": true, "dependencies": { "bluebird": "^2.1.3", "body-parser": "^1.3.1", "express": "4.4.3", "mysql": "*", "knex": "*", "bookshelf": "*" } }
Unsere MySQL -Datenbank heißt Blog. Wir müssen das Artikelmodell definieren und an die Artikeltabelle binden. Wir ersetzen // {unser Modelldefinitionscode hier}:
// 当应用程序启动时 var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var Promise = require('bluebird'); var dbConfig = { client: 'mysql', connection: { host: 'localhost', user: 'root', password: 'your_password', database: 'blog', charset: 'utf8' } }; var knex = require('knex')(dbConfig); var bookshelf = require('bookshelf')(knex); app.set('bookshelf', bookshelf); var allowCrossDomain = function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); next(); }; app.use(allowCrossDomain); // 解析 application/x-www-form-urlencoded app.use(bodyParser.urlencoded()); // 解析 application/json app.use(bodyParser.json()); // 解析 application/vnd.api+json 为 json app.use(bodyParser.json({type: 'application/vnd.api+json'})); // 在其他地方,使用 bookshelf 客户端: var bookshelf = app.get('bookshelf'); // {我们的模型定义代码在这里} app.listen(3000, function() { console.log('Express started at port 3000'); });
Zweifellos ist dies alles, was Sie brauchen, um ein Modell in Bookshelf.js zu definieren. Wir können dieses Modell jetzt verwenden, um die Datenbank in unserer API abzufragen. Erstens sollte die Methode GET /API /ARTIKEL alle Artikel in der Datenbank zurückgeben:
var Article = bookshelf.Model.extend({ tableName: 'article' });
fetchall in bookshelf.js erhält alle Einträge in der Datenbanktabelle und Catch wird nur ausgeführt, wenn ein Fehler auftritt (es gibt mehr Modellmethoden im Dokument).
Schlussfolgerung
node.js wurde als Technologie entwickelt und kann verwendet werden, um Webanwendungen und APIs über Module wie Express.js zu erstellen. Bookshelf.js wird die Interaktion mit der relationalen Datenbank von node.js -Anwendungen erleichtert, indem die zugrunde liegende Struktur der Datenbanktabelle eingekapselt und regelmäßige JavaScript -Objekte für die Abfrage aufgedeckt werden. Dieser Artikel bietet eine hochrangige Einführung. Die vollständige Implementierung des Demo -Projekts ist auf GitHub verfügbar. (GitHub -Link sollte hier hinzugefügt werden, wenn er existiert)
bookself.js Erste Schritte faq
bookshelf.js ist eine JavaScript -Bibliothek, die eine einfache und elegante API zur Interaktion mit SQL -Datenbanken bietet. Es unterstützt Transaktionen, dringende/nacken dringende Beziehungsbelastung, polymorphe Assoziationen und mehr. Der Hauptvorteil der Verwendung von Bookshelf.js ist seine Einfachheit und Flexibilität. Sie können weniger Code schreiben, während Sie mehr Dinge tun, wodurch Ihr Entwicklungsprozess schneller und effizienter gestaltet wird.
So installieren Sie Bookshelf.js, Sie müssen Node.js und NPM in Ihrem System installieren. Nach Abschluss der Installation können Sie das Buchhandel installieren.js, indem Sie den Befehl npm install bookshelf knex sqlite3 --save
im Terminal ausführen. Dadurch werden sowohl bookshelf.js als
Um das Buchhandel zu verbinden. Js mit Ihrer Datenbank, müssen Sie zuerst Knex.js mit Ihrer Datenbankkonfiguration initialisieren. Anschließend übergeben Sie diese initialisierte Knex -Instanz an Bookshelf.js. Hier ist ein grundlegendes Beispiel:
new Post({name: 'New Article'}).save().then(function(model) { // ... });
In Bookshelf.js wird das Modell definiert, indem das von Bookselelf.js bereitgestellte Basisklassenmodell erweitert wird. Hier ist ein Beispiel, das das Benutzermodell definiert:
// select * from `user` where `email` = 'user@mail.com' new User({email: 'user@mail.com'}) .fetch() .then(function(model) { console.log(model.get('gender')); });
Es ist sehr einfach, Daten aus einer Datenbank mit bookshelf.js zu extrahieren. Sie können die vom Modell bereitgestellte Fetch -Methode verwenden. Hier ist ein Beispiel:
<code>GET /api/article GET /api/article/:article_id POST /api/article</code>
Es ist auch einfach, Daten mit bookshelf.js in der Datenbank zu speichern. Sie können die vom Modell bereitgestellte Speichermethode verwenden. Hier ist ein Beispiel:
create table article ( id int not null primary key, title varchar(100) null, body text null, author varchar(100) null );
Die Daten in der Datenbank können mit der Speichernmethode aktualisiert werden. Sie müssen nur das Modell zuerst extrahieren und dann mit den neuen Daten Speichern aufrufen. Hier ist ein Beispiel:
{ "name": "article_api", "description": "expose articles via JSON", "version": "0.0.1", "private": true, "dependencies": { "bluebird": "^2.1.3", "body-parser": "^1.3.1", "express": "4.4.3", "mysql": "*", "knex": "*", "bookshelf": "*" } }
Die Daten können mithilfe der vom Modell bereitgestellten Methode aus der Datenbank gelöscht werden. Hier ist ein Beispiel:
// 当应用程序启动时 var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var Promise = require('bluebird'); var dbConfig = { client: 'mysql', connection: { host: 'localhost', user: 'root', password: 'your_password', database: 'blog', charset: 'utf8' } }; var knex = require('knex')(dbConfig); var bookshelf = require('bookshelf')(knex); app.set('bookshelf', bookshelf); var allowCrossDomain = function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); next(); }; app.use(allowCrossDomain); // 解析 application/x-www-form-urlencoded app.use(bodyParser.urlencoded()); // 解析 application/json app.use(bodyParser.json()); // 解析 application/vnd.api+json 为 json app.use(bodyParser.json({type: 'application/vnd.api+json'})); // 在其他地方,使用 bookshelf 客户端: var bookshelf = app.get('bookshelf'); // {我们的模型定义代码在这里} app.listen(3000, function() { console.log('Express started at port 3000'); });
bookselelf.js bietet verschiedene Möglichkeiten, mit Beziehungen zwischen Modellen wie Hasone, Hasmany, Adoca und Hörstoman umzugehen. Hier ist ein Beispiel für ein Benutzermodell mit mehreren Postmodellen:
var Article = bookshelf.Model.extend({ tableName: 'article' });
Transaktionen in Bookshelf.js können unter Verwendung der Transaktionsmethode von Knex.js. Hier ist ein Beispiel:
app.get('/api/article', function(req, res) { new Article().fetchAll() .then(function(articles) { res.send(articles.toJSON()); }).catch(function(error) { console.log(error); res.send('An error occured'); }); });
Bitte beachten Sie, dass einige der Details in den oben genannten Code -Beispielen möglicherweise gemäß Ihrer spezifischen Datenbank und Umgebung angepasst werden müssen. Darüber hinaus wird empfohlen, sich auf die offizielle Dokumentation von Bookselelf.js zu beziehen, um die neuesten Informationen und detailliertere Anleitung zu erhalten.
Das obige ist der detaillierte Inhalt vonErste Schritte mit Bookshelf.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!