Points de base
- libshelf.js est un logiciel de mappage relationnel d'objet (ORM) pour JavaScript (en particulier Node.js), ce qui simplifie le processus de communication avec une base de données en permettant aux développeurs d'utiliser des objets dans leur langage de programmation de choix pour interagir avec la base de données.
- La bibliothèque fournit un moyen simple et intuitif d'effectuer des opérations CRUD (créer, lire, mettre à jour, supprimer) et prend en charge une interface basée sur les promesses, ce qui signifie que les fonctions sont appelées uniquement lorsque la requête réussit.
- Comme indiqué dans l'exemple de la création d'une API JSON de blog dans l'article, Bookshelf.js peut être utilisé en conjonction avec express.js pour construire une API, et peut être utilisé pour encapsuler la structure de la table de base de données sous-jacente, exposant un JavaScript JavaScript régulier Objets pour la requête.
Ces dernières années, JavaScript a augmenté en popularité. Au fil des ans, les gens ont essayé d'appliquer ce langage populaire à plusieurs reprises du serveur. L'une des tentatives les plus réussies était Node.js, qui a été recommandé à la communauté comme un moyen d'écrire des applications de serveur rapidement. Le point de vente du n?ud est la vitesse, tant en termes de performance et de temps de développement. Avec cette popularité, la communauté continue de cro?tre et le projet bénéficie également de plus de contributeurs, entra?nant des modules de haute qualité tels que Express.js.
Les gens ont donc commencé à construire un backend complet à l'aide du n?ud. L'une des choses les plus importantes qu'un système backend devrait faire est de communiquer efficacement avec la base de données. C'est là que le logiciel de cartographie des relations d'objet (ORM) entre en jeu. Souvent, les développeurs doivent être compétents dans le langage de programmation et SQL qu'ils utilisent afin de communiquer avec les bases de données. ORM simplifie le processus de développement en permettant aux développeurs d'interagir avec la base de données à l'aide d'objets dans leur langage de programmation de choix. Cet article présente Orm et accorde une attention particulière à la librairie.js orm.
Qu'est-ce que l'ORM?
wikipedia définit la cartographie des relations objets comme:
Une technique de programmation pour convertir les données entre les systèmes de type incompatible dans les langages de programmation orientés objet. Cela crée en fait une "base de données d'objets virtuelle" qui peut être utilisée en interne dans le langage de programmation.
Dans notre exemple, le langage de programmation est JavaScript, et le système incompatible est un système de base de données relationnel, comme MySQL. Cela signifie que la bibliothèque ORM devrait nous permettre de communiquer avec la base de données de la même manière que d'interagir avec les objets JavaScript conventionnels. Il existe de nombreuses bibliothèques ORM dans Node.js, et les bibliothèques populaires incluent persistance.js, séquelize.js et libylf.js. Cet article présentera la librairie.js.
librairie.js Exemple
Les interactions de la base de données tournent généralement autour de quatre opérations CRUD: créer, lire, mettre à jour et supprimer. Bookshelf.js fournit un moyen intuitif d'effectuer ces opérations, par exemple, créer des opérations comme celle-ci:
new Post({name: 'New Article'}).save().then(function(model) { // ... });
Supposons que la publication est un modèle avec la table de base de données correspondante, et le nom est une propriété qui correspond à une colonne de la table de base de données.
De même, l'opération de lecture est la suivante:
new Post({name: 'New Article'}).save().then(function(model) { // ... });
Veuillez noter alors l'appel dans le code. Bookshelf.js prend en charge une interface basée sur des promesses, auquel cas cela signifie que la fonction anonyme transmise à alors ne sera appelée que lorsque la requête réussit. Un modèle est un objet JavaScript généré que vous pouvez utiliser pour accéder aux propriétés associées à l'utilisateur. Dans notre exemple, Model.get (?Gender?) renvoie le sexe de l'utilisateur.
Build API avec libylf.js et express.js
Pour un exemple plus complet, supposons que nous soyons délégués pour construire un blog avec l'API JSON des ressources suivantes:
// select * from `user` where `email` = 'user@mail.com' new User({email: 'user@mail.com'}) .fetch() .then(function(model) { console.log(model.get('gender')); });
et le client a déjà le tableau suivant:
<code>GET /api/article GET /api/article/:article_id POST /api/article</code>
Tout d'abord, nous devons utiliser package.json pour configurer l'environnement express.js:
create table article ( id int not null primary key, title varchar(100) null, body text null, author varchar(100) null );
Nous avons besoin du constructeur de requête Knex car la bibliothèque en dépend, et nous avons besoin de Bluebird pour gérer la promesse. Notre structure app.js est la suivante:
{ "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": "*" } }
Notre base de données MySQL s'appelle Blog. Nous devons définir le modèle d'article et le lier au tableau d'articles. Nous remplacerons // {notre code de définition de modèle ici}:
// 當應用程序啟動時 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'); });
Il ne fait aucun doute que c'est tout ce dont vous avez besoin pour définir un modèle dans la bibliothèque.js. Nous pouvons maintenant utiliser ce modèle pour interroger la base de données dans notre API. Tout d'abord, la méthode GET / API / Article doit renvoyer tous les articles dans la base de données:
var Article = bookshelf.Model.extend({ tableName: 'article' });
fetchall dans bibliothèque.js obtient toutes les entrées dans la table de la base de données et Catch n'est effectué que si une erreur se produit (il y a plus de méthodes de modèle dans le document).
Conclusion
Node.js a été développé en tant que technologie et peut être utilisé pour créer des applications Web et des API via des modules tels que Express.js. Bookshelf.js facilite l'interaction avec la base de données relationnelle des applications Node.js plus facilement en encapsulant la structure de la table de base de données sous-jacente et en exposant des objets JavaScript réguliers pour la requête. Cet article fournit une introduction de haut niveau. La mise en ?uvre complète du projet de démonstration est disponible sur GitHub. (Le lien github doit être ajouté ici, s'il existe)
librairie Qu'est-ce que la librairie.js et pourquoi devrais-je l'utiliser?
libshelf.js est une bibliothèque JavaScript qui fournit une API simple et élégante pour interagir avec les bases de données SQL. Il prend en charge les transactions, le chargement des relations urgentes urgents / coupés, les associations polymorphes, etc. Le principal avantage de l'utilisation de la bibliothèque.js est sa simplicité et sa flexibilité. Il vous permet d'écrire moins de code tout en faisant plus de choses, ce qui rend votre processus de développement plus rapide et plus efficace.
Comment installer la librairie.js?
Pour installer la librairie.js, vous devez installer Node.js et NPM sur votre système. Une fois l'installation terminée, vous pouvez installer la librairie.js en exécutant la commande
dans le terminal. Cela installera Bibelf.js ainsi que Knex.js (un SQL Query Builder) et SQLite3 (une base de données basée sur le disque légère).Comment connecter la librairie.js à ma base de données?
Pour connecter la bibliothèque.js à votre base de données, vous devez d'abord initialiser knex.js avec votre configuration de base de données. Vous passez ensuite cette instance Knex initialisée à la librairie.js. Voici un exemple de base:
new Post({name: 'New Article'}).save().then(function(model) { // ... });
Comment définir un modèle dans la bibliothèque.js?
Dans la librairie.js, le modèle est défini en étendant le modèle de classe de base fournis par bibliothèque.js. Voici un exemple qui définit le modèle utilisateur:
// select * from `user` where `email` = 'user@mail.com' new User({email: 'user@mail.com'}) .fetch() .then(function(model) { console.log(model.get('gender')); });
Comment utiliser la librairie.js pour extraire les données d'une base de données?
Il est très simple d'extraire des données d'une base de données à l'aide de bibliothèque.js. Vous pouvez utiliser la méthode Fetch fournie par le modèle. Voici un exemple:
<code>GET /api/article GET /api/article/:article_id POST /api/article</code>
Comment enregistrer des données dans une base de données à l'aide de bibliothèque.js?
Il est également facile d'enregistrer des données dans la base de données à l'aide de bibliothèque.js. Vous pouvez utiliser la méthode de sauvegarde fournie par le modèle. Voici un exemple:
create table article ( id int not null primary key, title varchar(100) null, body text null, author varchar(100) null );
Comment utiliser la librairie.js pour mettre à jour les données dans une base de données?
Les données de la base de données peuvent être mises à jour à l'aide de la méthode de sauvegarde. Il vous suffit d'extraire le modèle d'abord, puis d'appeler Enregistrer avec les nouvelles données. Voici un exemple:
{ "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": "*" } }
Comment utiliser la librairie.js pour supprimer les données d'une base de données?
Les données peuvent être supprimées de la base de données à l'aide de la méthode de destruction fournie par le modèle. Voici un exemple:
// 當應用程序啟動時 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'); });
Comment gérer les relations dans la bibliothèque.js?
libshelf.js fournit plusieurs fa?ons de gérer les relations entre les modèles, tels que Hasone, Hasmany, Belongsto et Belongstomany. Voici un exemple de modèle d'utilisateur avec plusieurs modèles de post:
var Article = bookshelf.Model.extend({ tableName: 'article' });
Comment gérer les transactions dans bibliothèque.js?
Les transactions dans la librairie.js peuvent être gérées à l'aide de la méthode de transaction fournie par knex.js. Voici un exemple:
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'); }); });
Veuillez noter que certains des détails des exemples de code ci-dessus peuvent devoir être ajustés en fonction de votre base de données et de votre environnement spécifiques. En outre, il est recommandé de se référer à la documentation officielle de Bookshelf.js pour les dernières informations et des conseils plus détaillés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Java et JavaScript sont différents langages de programmation, chacun adapté à différents scénarios d'application. Java est utilisé pour le développement des grandes entreprises et des applications mobiles, tandis que JavaScript est principalement utilisé pour le développement de pages Web.

JavaScriptCommentsaSententialFormantaining, Reading et GuidingCodeEexecution.1) unique-linecomesaUSEUSEFORQUICKEXPLANATIONS.2) Multi-linecommentSExPlainComplexLogicorProvideTailedDocumentation.3) Inlinecomementsclarifypecifications

Les points suivants doivent être notés lors du traitement des dates et du temps dans JavaScript: 1. Il existe de nombreuses fa?ons de créer des objets de date. Il est recommandé d'utiliser les cha?nes de format ISO pour assurer la compatibilité; 2. Get and définir des informations de temps peuvent être obtenues et définir des méthodes, et notez que le mois commence à partir de 0; 3. Les dates de mise en forme manuelle nécessitent des cha?nes et les bibliothèques tierces peuvent également être utilisées; 4. Il est recommandé d'utiliser des bibliothèques qui prennent en charge les fuseaux horaires, comme Luxon. La ma?trise de ces points clés peut éviter efficacement les erreurs courantes.

PlacertagsatthebottomofablogPostorwebPageSerSpracticalPurpossForseo, userexperience, anddesign.1.ithelpswithseobyallowingsechingenginestoaccesskeyword-elevanttagswithoutcluteringtheaincontent..itimproveserexperceenceegmentyepingthefocusonThearrlUl

Javascriptispreferredforwebdevelopment, tandis que javaisbetterforlarge-scalebackenSystemsandandroidApps.1)

JavascripthSsevenfundamentalDatatypes: nombre, cha?ne, booléen, indéfini, nul, objet, andymbol.1) nombres usUseadouble-précisformat, utile

La capture d'événements et la bulle sont deux étapes de la propagation des événements dans DOM. La capture est de la couche supérieure à l'élément cible, et la bulle est de l'élément cible à la couche supérieure. 1. La capture de l'événement est implémentée en définissant le paramètre UseCapture d'AdveventListener sur true; 2. événement Bubble est le comportement par défaut, UseCapture est défini sur False ou Omise; 3. La propagation des événements peut être utilisée pour empêcher la propagation des événements; 4. événement Bubbling prend en charge la délégation d'événements pour améliorer l'efficacité du traitement du contenu dynamique; 5. La capture peut être utilisée pour intercepter les événements à l'avance, telles que la journalisation ou le traitement des erreurs. La compréhension de ces deux phases aide à contr?ler avec précision le calendrier et comment JavaScript répond aux opérations utilisateur.

Java et JavaScript sont différents langages de programmation. 1.Java est un langage typique et compilé, adapté aux applications d'entreprise et aux grands systèmes. 2. JavaScript est un type dynamique et un langage interprété, principalement utilisé pour l'interaction Web et le développement frontal.
