Một module cơ sở dữ liệu
Thuộc phần Cơ sở dữ liệu với MongoDB trong hành trình Node.js của Coddy. Bài học 26 trên 29.
Một tệp vừa mở cơ sở dữ liệu vừa chứa tất cả các route sẽ khó đọc, và bất kỳ tệp nào khác cần books đều phải kết nối lại.
Chuyển kết nối sang một module riêng. Code ở cấp cao nhất của module chỉ chạy một lần, khi có tệp đầu tiên import module đó, và mọi lần import sau đều nhận cùng các phần được export. Vì vậy, client, chỉ mục và dữ liệu seed chỉ chạy một lần, dù có bao nhiêu tệp import các collection. await ở cấp cao nhất hoạt động trong module, và tệp import sẽ chờ cho đến khi phần đó chạy xong.
// 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';Thử thách
Dễserver.jshiện nhậpbooksvàratingstừ./db.js, nên chưa thể khởi động.- Trong
db.js, hãy tạo client, xuất cả hai collection, tạo chỉ mục ISBN, rồi thêm dữ liệu ban đầu cho sách và tác giả.
Nhấn Chạy: mọi route vẫn phản hồi như trước. Gửi GET /books hai lần: vẫn có ba cuốn sách.
Tự làm thử
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' },
];
// Tạo client tại đây, export các bộ sưu tập books và ratings,
// tạo chỉ mục ISBN, rồi nạp dữ liệu ban đầu từ bookList và authorList.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Cơ sở dữ liệu với MongoDB
1Tài liệu
Một cuốn sách dưới dạng tài liệuBộ sưu tập và cơ sở dữ liệuKết nối với MongoDBĐọc tài liệu đã lưuChèn tài liệuTìm một tài liệuTìm theo ObjectIdSo sánh các sốBộ lọc truy vấnChọn các trường được trả vềSắp xếp kết quả truy vấnGiữ lại các kết quả đầu tiênPhép chiếu, sắp xếp và giới hạn4Cấu trúc
Một module cơ sở dữ liệuPhân trang trong cơ sở dữ liệuTự luyện tập: Playground Express