Cơ sở dữ liệu tốt nhất nodejs

Nút. js là một môi trường thời gian chạy JavaScript nguồn mở cho phép các nhà phát triển back-end sử dụng JavaScript để tạo các ứng dụng và API phía máy chủ

nút là gì. js được sử dụng để làm gì?

Sử dụng nút. js cho phép giao diện người dùng của bạn (i. e. Phản ứng, Vue. js, thậm chí cả jQuery) sử dụng cùng ngôn ngữ lập trình, JavaScript, với tư cách là nhà phát triển phụ trợ của bạn. Điều này cho phép phát triển đa chức năng và nhanh nhẹn hơn. Nút. js đang được sử dụng rộng rãi và liên tục, và tôi thực sự khuyên dùng nó cho sự phát triển mới

Cơ sở dữ liệu tốt nhất cho nút là gì. js?

Hãy xem nhanh một số điều bạn nên xem xét khi chọn cơ sở dữ liệu


SQL (e. g. , MySQL, PostgreSQL) so với NoSQL

Đối với hầu hết các ứng dụng, một số loại lưu trữ dữ liệu liên tục được yêu cầu. Theo truyền thống, điều này sẽ được xử lý bởi một cơ sở dữ liệu quan hệ như MySQL, Postgres, SQLite/SQLite3, MSSQL Server, v.v. Cơ sở dữ liệu quan hệ là lựa chọn phù hợp cho nhiều ứng dụng tùy thuộc vào trường hợp sử dụng, nhưng có một số vấn đề bạn có thể muốn xem xét


Thiết kế trả trước quan trọng cần thiết

Để tạo cơ sở dữ liệu trong MySQL, cần có mô hình dữ liệu hoặc lược đồ. Tạo và thiết kế mô hình này có thể là một quá trình kéo dài nhiều tuần bao gồm gặp gỡ các bên liên quan, quy trình thiết kế và nhiều lần sửa đổi. Sau khi được tạo và điền dữ liệu, mô hình của cơ sở dữ liệu SQL có thể khó sửa đổi do các vấn đề phụ thuộc vào dữ liệu, do đó, thời gian thiết kế trước thường được yêu cầu


Hiệu suất và nhân rộng

Cơ sở dữ liệu SQL ban đầu không được thiết kế để mở rộng quy mô mà thay vào đó để có các thuộc tính ACID. Như vậy, trong khi có thể dễ dàng mở rộng cơ sở dữ liệu SQL theo chiều dọc (e. g. , đặt nó trên một máy chủ lớn hơn), mở rộng nó theo chiều ngang (nhiều máy chủ) khá khó khăn và phức tạp ngay cả ngày nay


Lợi ích của NoSQL

Ngược lại, cơ sở dữ liệu NoSQL rất lý tưởng cho các tình huống mà bạn cần hiệu suất cao, khả năng mở rộng theo chiều ngang và đang xử lý một lượng lớn dữ liệu phi cấu trúc. Cơ sở dữ liệu NoSQL lưu trữ dữ liệu ở các định dạng linh hoạt—chẳng hạn như biểu đồ, khóa/giá trị và tài liệu—có thể dễ dàng lưu trữ nhiều loại dữ liệu. Và, vì dữ liệu không được liên kết theo quan hệ, cơ sở dữ liệu NoQuery có thể nhanh hơn đáng kể và dễ dàng hơn để thiết kế, cập nhật và mở rộng quy mô

Có lẽ cơ sở dữ liệu NoSQL được sử dụng phổ biến nhất là MongoDB, một cơ sở dữ liệu tài liệu mã nguồn mở. Trên thực tế, sự kết hợp giữa MongoDB cho cơ sở dữ liệu, Express framework cho mặt sau, React cho mặt trước và Node. js là máy chủ web phổ biến đến mức nó được gọi là ngăn xếp MERN cho ứng dụng web. Với mục đích của bài viết này, tôi sẽ sử dụng MongoDB làm ví dụ về cơ sở dữ liệu NoSQL

Cách tạo cơ sở dữ liệu MongoDB bằng nút. js

Khi tạo cơ sở dữ liệu, bạn có thể chọn thiết lập cục bộ hoặc trên đám mây. Ví dụ: bạn có thể quay vòng cài đặt MongoDB trên localhost theo cách thủ công bằng cách tải xuống và cài đặt MongoDB. Điều đó nói rằng, cài đặt thủ công đi kèm với chi phí bảo trì và bảo trì liên tục. Là một nhà phát triển ứng dụng, tôi muốn tránh càng nhiều công việc thủ công càng tốt, vì vậy tôi có xu hướng ngại cài đặt thủ công

Đối với các dịch vụ đám mây, có MongoDB Atlas, dịch vụ cơ sở dữ liệu dưới dạng dịch vụ từ MongoDB. Nó không phụ thuộc vào nền tảng, cho phép bạn tạo các cụm cơ sở dữ liệu trên AWS, Azure và Google Cloud, đồng thời mở rộng quy mô đơn giản bằng cách nhấp vào một nút. Họ cũng giúp bạn dễ dàng bắt đầu với bậc M0 miễn phí. Tổng thời gian từ khi đăng ký đến khi có cơ sở dữ liệu được tạo là chưa đầy năm phút đối với tôi


Tìm kiếm Trình điều khiển được hỗ trợ chính thức

Như với bất kỳ sự tích hợp nào giữa hai công nghệ, cuộc sống trở nên dễ dàng hơn khi có trình điều khiển được hỗ trợ chính thức cho giao diện. (Để biết ví dụ về trình điều khiển cơ sở dữ liệu không được hỗ trợ chính thức, hãy xem Node. js Trình điều khiển cho Máy chủ SQL. ) Hỗ trợ chính thức dẫn đến tài liệu tốt hơn, chức năng mạnh mẽ hơn và tùy chọn hỗ trợ trực tiếp từ nhà sản xuất

Trong trường hợp này, Trình điều khiển nút MongoDB chính thức đến trực tiếp từ MongoDB và rất dễ sử dụng. Cài đặt nó trong Nút của bạn. js đơn giản như chạy lệnh sau

npm install mongodb --save

Trình điều khiển giúp kết nối với cơ sở dữ liệu, xác thực, thao tác CRUD và thậm chí ghi nhật ký/giám sát của bạn đơn giản như chạy một lệnh. Trình điều khiển cũng hỗ trợ các tính năng hứa hẹn/không đồng bộ JavaScript. Điều này giúp dễ dàng tương tác với dữ liệu của bạn từ Nút của bạn. ứng dụng js

Để biết thêm thông tin, hãy xem cách kết nối với cơ sở dữ liệu MongoDB hoặc tham gia lớp học trực tuyến miễn phí của họ, MongoDB dành cho nhà phát triển JavaScript

Làm cách nào để tôi bắt đầu với MongoDB?

Tự hỏi bắt đầu từ đâu?


Cài đặt nút. js và NPM

Trước tiên, bạn sẽ cần cài đặt Node. js. Tôi khuyên dùng phiên bản hỗ trợ dài hạn. Điều này cũng sẽ cài đặt NPM. NPM là Trình quản lý gói Node và nó đi kèm với Node. js để cho phép dễ dàng cài đặt nhiều gói của bên thứ ba


Thêm nút MongoDB. trình điều khiển js

Từ dòng lệnh/thiết bị đầu cuối trong thư mục dự án của bạn, hãy chạy lệnh sau

npm install mongodb --save

Điều này sẽ tự động tải xuống phiên bản trình điều khiển mới nhất và lưu nó vào gói của bạn. cấu hình json

Cách tạo và kết nối với cơ sở dữ liệu bằng MongoDB Atlas

1. Tạo tài khoản để đăng ký miễn phí MongoDB Atlas

2. Tiếp theo, tạo cụm cơ sở dữ liệu trên nền tảng bạn chọn

Cơ sở dữ liệu tốt nhất nodejs

3. Tải dữ liệu mẫu trong “Bộ sưu tập. ”

Cơ sở dữ liệu tốt nhất nodejs

4. Thiết lập kết nối và tạo người dùng cơ sở dữ liệu

Cơ sở dữ liệu tốt nhất nodejs

Theo mặc định, người dùng có cả quyền đọc và ghi đối với bất kỳ cơ sở dữ liệu nào trong cụm. Đối với mục đích thử nghiệm, điều này là tốt;

Đảm bảo lưu mật khẩu

Cơ sở dữ liệu tốt nhất nodejs

5. Tiếp theo, chọn tùy chọn “Kết nối ứng dụng của bạn”

Cơ sở dữ liệu tốt nhất nodejs

6. Sao chép mã kết nối được cung cấp trong mẫu và điền mật khẩu của bạn và “sample_airbnb” cho tên cơ sở dữ liệu. Cú pháp như sau

async function main() {
  const MongoClient = require('mongodb').MongoClient;
  const uri =
    'mongodb+srv://dbUser:@cluster0.dcu5m.mongodb.net/sample_airbnb?retryWrites=true&w=majority';
  const client = new MongoClient(uri, { useNewUrlParser: true });
  client.connect((err) => {
    const collection = client.db('test').collection('devices');
    // perform actions on the collection object
    client.close();
  });
}
main().catch(console.error);

7. Giả sử bạn đã lưu cái này dưới dạng “mongo. js” trên hệ thống tệp của bạn, hãy dùng thử bằng cách chạy lệnh sau

node mongo.js

Nếu mọi thứ hoạt động, bạn sẽ không thấy bất kỳ đầu ra nào ngoài một số thông báo thông tin. Hãy tiếp tục và tạo một số đầu ra

Cách hiển thị dữ liệu từ cơ sở dữ liệu MongoDB Atlas trong nút. js

Bây giờ chúng tôi đã kết nối với cơ sở dữ liệu Atlas của mình, hãy thực hiện một chút truy vấn. Tôi đã tạo một hàm findListings đơn giản để truy vấn danh sách từ cơ sở dữ liệu mẫu. Mã cho chức năng như sau

async function findListings(client, resultsLimit) {
  const cursor = client
    .db('sample_airbnb')
    .collection('listingsAndReviews')
    .find()
    .limit(resultsLimit);

  const results = await cursor.toArray();
  if (results.length > 0) {
    console.log(`Found ${results.length} listing(s):`);
    results.forEach((result, i) => {
      date = new Date(result.last_review).toDateString();

      console.log();
      console.log(`${i + 1}. name: ${result.name}`);
      console.log(`   _id: ${result._id}`);
      console.log(`   bedrooms: ${result.bedrooms}`);
      console.log(`   bathrooms: ${result.bathrooms}`);
      console.log(
        `   most recent review date: ${new Date(
          result.last_review
        ).toDateString()}`
      );
    });
  }
}

Hãy tiếp tục và sao chép nó vào cuối mongo của bạn. tập tin js. Tiếp theo, hãy cập nhật mã kết nối của chúng tôi để sử dụng mẫu không đồng bộ và xóa lệnh gọi lại. Sau đó, hãy gọi chức năng truy vấn của chúng tôi như sau

async function main() {
  const MongoClient = require('mongodb').MongoClient;
  const uri =
    'mongodb+srv://dbUser:@cluster0.dcu5m.mongodb.net/sample_airbnb?retryWrites=true&w=majority';
  const client = new MongoClient(uri, { useNewUrlParser: true });

  // Connect to the client and query
  await client.connect();
  findListings(client, 5);
  client.close();
}

Mã đầy đủ sẽ trông như sau

  async function main() {
  const MongoClient = require('mongodb').MongoClient;
  const uri =
    'mongodb+srv://dbUser:@cluster0.dcu5m.mongodb.net/sample_airbnb?retryWrites=true&w=majority';
  const client = new MongoClient(uri, { useNewUrlParser: true });

  // Connect to the client and query
  await client.connect();
  findListings(client, 5);
  client.close();
}

main().catch(console.error);

async function findListings(client, resultsLimit) {
  const cursor = client
    .db('sample_airbnb')
    .collection('listingsAndReviews')
    .find()
    .limit(resultsLimit);

  const results = await cursor.toArray();
  if (results.length > 0) {
    console.log(`Found ${results.length} listing(s):`);
    results.forEach((result, i) => {
      date = new Date(result.last_review).toDateString();

      console.log();
      console.log(`${i + 1}. name: ${result.name}`);
      console.log(`   _id: ${result._id}`);
      console.log(`   bedrooms: ${result.bedrooms}`);
      console.log(`   bathrooms: ${result.bathrooms}`);
      console.log(
        `   most recent review date: ${new Date(
          result.last_review
        ).toDateString()}`
      );
    });
  }
}

Chạy nút mongo. js và bạn sẽ thấy năm danh sách trong bảng điều khiển của mình

Cơ sở dữ liệu tốt nhất nodejs

Thành công. Bạn đã kết nối, truy vấn và hiển thị dữ liệu từ cơ sở dữ liệu MongoDB của mình. Để biết thêm chi tiết từng bước và nhiều ví dụ mã hơn, hãy xem bài đăng này của Lauren Schaefer

Bản tóm tắt

Trong bài viết này, tôi đã trải qua quá trình suy nghĩ của mình khi chọn cơ sở dữ liệu cho một Node. js, thiết lập cục bộ so với đám mây, lợi ích của việc có trình điều khiển được hỗ trợ chính thức và các bước đầu tiên để thiết lập MongoDB. Mặc dù thế giới cơ sở dữ liệu đôi khi có thể phức tạp và đáng sợ, nhưng tôi hy vọng bài viết này giúp bạn đơn giản hơn một chút

Cơ sở dữ liệu nào là tốt nhất với NodeJs?

“Nút. js chỉ có thể được sử dụng với MongoDB (là cơ sở dữ liệu NoSQL phổ biến nhất). ”

Tôi có nên sử dụng MySQL hoặc MongoDB với nút js không?

MySQL là lựa chọn tuyệt vời nếu bạn có dữ liệu có cấu trúc và cần một cơ sở dữ liệu quan hệ truyền thống . MongoDB rất phù hợp để phân tích thời gian thực, quản lý nội dung, Internet vạn vật, di động và các loại ứng dụng khác.

MySQL có tốt cho NodeJ không?

js được kết hợp với MongoDB và các cơ sở dữ liệu NoSQL khác, nhưng Node. js cũng hoạt động tốt với các cơ sở dữ liệu quan hệ như MySQL . Nếu bạn muốn viết một microservice mới với Node. js cho cơ sở dữ liệu hiện có, rất có thể bạn sẽ sử dụng MySQL, một trong những cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới.

MongoDB có tốt cho nút JS không?

Nút MongoDB. trình điều khiển js sử dụng MongoDB với Node. js một trải nghiệm liền mạch . Trình điều khiển tự động ánh xạ các đối tượng JavaScript sang tài liệu BSON, nghĩa là các nhà phát triển có thể dễ dàng làm việc với dữ liệu của họ.