Heim > Web-Frontend > js-Tutorial > Erste Schritte mit Bookshelf.js

Erste Schritte mit Bookshelf.js

Joseph Gordon-Levitt
Freigeben: 2025-02-21 10:13:10
Original
966 Leute haben es durchsucht

Getting Started with Bookshelf.js

Kernpunkte

  • bookselelf.js ist eine Software für Objekt-Relations-Mapping (ORM) für JavaScript (insbesondere Node.js), die den Prozess der Kommunikation mit einer Datenbank vereinfacht, indem Entwickler Objekte in ihrer Programmiersprache der Wahl verwenden können, um mit dem zu interagieren, um mit dem zu interagieren Datenbank.
  • Die Bibliothek bietet eine einfache und intuitive Möglichkeit, CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) durchzuführen und eine vielversprechende Schnittstelle zu unterstützen. Dies bedeutet, dass Funktionen nur dann aufgerufen werden, wenn die Abfrage erfolgreich ist.
  • Wie im Beispiel des Erstellens einer Blog -JSON -API im Artikel, können Bookselfelf.js in Verbindung mit Express.js verwendet werden, um eine API zu erstellen, und kann verwendet werden, um die zugrunde liegende Struktur der Datenbanktabelle zu verringern und regelmäßig JavaScript freizulegen. Objekte zum Abfragen.

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) {
  // ...
});
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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) {
  // ...
});
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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

erstellen

Fü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'));
  });
Nach dem Login kopieren
Nach dem Login kopieren

und der Client hat bereits die folgende Tabelle:

<code>GET  /api/article
GET  /api/article/:article_id
POST /api/article</code>
Nach dem Login kopieren
Nach dem Login kopieren

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
);
Nach dem Login kopieren
Nach dem Login kopieren

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": "*"
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

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');
});
Nach dem Login kopieren
Nach dem Login kopieren

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'
});
Nach dem Login kopieren
Nach dem Login kopieren

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

Was ist ein Buchhandel und warum sollte ich es verwenden?

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.

Wie installiere ich Bookshelf.js?

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

Wie verbinde ich Bookshelf.js mit meiner Datenbank?

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) {
  // ...
});
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wie definiert man ein Modell in Bookselelf.js?

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'));
  });
Nach dem Login kopieren
Nach dem Login kopieren

Wie kann man Bookshelf.js verwenden, um Daten aus einer Datenbank zu extrahieren?

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>
Nach dem Login kopieren
Nach dem Login kopieren

Wie speichern Sie Daten in einer Datenbank mit einem bookshelf.js?

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
);
Nach dem Login kopieren
Nach dem Login kopieren

Wie kann man Bookshelf.js verwenden, um Daten in einer Datenbank zu aktualisieren?

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": "*"
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

Wie kann man Bookshelf.js verwenden, um Daten aus einer Datenbank zu löschen?

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');
});
Nach dem Login kopieren
Nach dem Login kopieren

Wie kann ich mit Beziehungen in bookself.js umgehen?

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'
});
Nach dem Login kopieren
Nach dem Login kopieren

Wie gehe ich mit Transaktionen in Bookself.js um?

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');
    });
});
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage