Menu
CoddyTech

Sebuah module database

Termasuk bagian Database dengan MongoDB dalam perjalanan Node.js di Coddy. Pelajaran 15 dari 18.

Satu file yang membuka database dan memuat setiap rute menjadi sulit dibaca, dan file kedua mana pun yang membutuhkan books harus terhubung lagi.

Pindahkan koneksi ke module tersendiri. Kode tingkat teratas dalam module berjalan sekali, saat pertama kali ada file yang mengimpornya, dan setiap impor berikutnya mendapatkan ekspor yang sama. Jadi, client, index, dan seed berjalan sekali, berapa pun jumlah file yang mengimpor koleksi. await tingkat teratas berfungsi dalam module, dan file yang mengimpor menunggu sampai prosesnya selesai.

// 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

Tantangan

Mudah
  • server.js kini mengimpor books dan ratings dari ./db.js, jadi server belum bisa dimulai.
  • Di db.js, buat client, ekspor kedua collection, buat indeks ISBN, lalu isi data awal untuk books dan authors.

Tekan Jalankan: setiap route memberikan respons seperti sebelumnya. Kirim GET /books dua kali: tetap ada tiga buku.

Coba sendiri

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' },
];

// Buat client di sini, ekspor koleksi books dan ratings,
// buat indeks ISBN, lalu isi data awal bookList dan authorList.
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Database dengan MongoDB

Latihan sendiri: Playground Express