Menu
CoddyTech

Un module de base de données

Fait partie de la section Bases de données avec MongoDB du Journey Node.js de Coddy. Leçon 15 sur 18.

Un fichier qui ouvre la base de données et contient toutes les routes devient difficile à lire, et tout autre fichier ayant besoin de books devrait se connecter à nouveau.

Déplace la connexion dans son propre module. Le code de niveau supérieur d’un module s’exécute une seule fois, la première fois qu’un fichier l’importe, et chaque importation ultérieure obtient les mêmes exports. Ainsi, le client, l’index et les données d’initialisation ne s’exécutent qu’une seule fois, quel que soit le nombre de fichiers qui importent les collections. await de niveau supérieur fonctionne dans un module, et le fichier qui l’importe attend que son exécution soit terminée.

// store.js
import { MongoClient } from 'mongodb';

const client = new MongoClient('mongodb://localhost:27017');
export const orders = client.db('shop').collection('orders');
await orders.createIndex({ number: 1 }, { unique: true });
// server.js
import { orders } from './store.js';
challenge icon

Défi

Facile
  • server.js importe maintenant books et ratings depuis ./db.js ; il ne peut donc pas encore démarrer.
  • Dans db.js, crée le client, exporte les deux collections, crée l’index ISBN et initialise les livres et les auteurs.

Appuie sur Run : chaque route répond comme avant. Envoie deux fois GET /books : il y a toujours trois livres.

Essayez vous-même

import { MongoClient } from 'mongodb';
import { authorList } from './authors.js';

const bookList = [
    { title: 'Dune', author: 'Frank Herbert', year: 1965, isbn: '9780441013593', genre: 'scifi' },
    { title: 'Kindred', author: 'Octavia E. Butler', year: 1979, isbn: '9780807083697', genre: 'scifi' },
    { title: 'Emma', author: 'Jane Austen', year: 1815, isbn: '9780141439587', genre: 'classic' },
];

// Créez le client ici, exportez les collections books et ratings,
// créez l’index ISBN et remplissez les collections avec bookList et authorList.
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Bases de données avec MongoDB