Hướng dẫn can nodejs be used as database? - nodejs có thể được sử dụng làm cơ sở dữ liệu không?

Tìm kiếm để thêm một cơ sở dữ liệu vào dự án Node.js của bạn, nhưng không chắc chắn để bắt đầu từ đâu? Trong bài viết này, tôi sẽ đưa ra một cái nhìn tổng quan về các tiêu chí để xem xét khi chọn cơ sở dữ liệu, tùy chọn NoQuery được đề xuất và một hướng dẫn ngắn gọn.


Node.js là gì?

Node.js là 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ủ.

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

Sử dụng Node.js cho phép các nhà phát triển Front-end của bạn (tức là React, Vue.js, ngay cả jQuery) sử dụng cùng một ngôn ngữ lập trình, javaScript, làm 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. Việc sử dụng Node.js là phổ biến và liên tục, và tôi đánh giá cao nó cho sự phát triển mới.

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

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


SQL (ví dụ: MySQL, PostgreSQL) so với NoQuery

Đố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 là bắt buộc. 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 vài vấn đề bạn có thể muốn xem xét.


Thiết kế trả trước đáng kể cần thiết

Để tạo cơ sở dữ liệu trong MySQL, một mô hình dữ liệu hoặc lược đồ là bắt buộc. Tạo và thiết kế mô hình này có thể là một quy trình nhiều tuần liên quan đến việc gặp gỡ các bên liên quan, quy trình thiết kế và nhiều 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 dữ liệu, do đó, thời gian thiết kế trả trước thường được yêu cầu.


Hiệu suất và quy mô

Cơ sở dữ liệu SQL ban đầu không được thiết kế để mở rộng quy mô, mà thay vào đó để có tính chất axit. Do đó, mặc dù dễ dàng mở rộng cơ sở dữ liệu SQL theo chiều dọc (ví dụ: đặt nó lên một máy chủ lớn hơn), việc 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.


Những lợi ích của NoQ

Ngược lại, cơ sở dữ liệu NoQuery rất phù hợp cho các tình huống 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 không có cấu trúc. Cơ sở dữ liệu NoQuery lưu trữ dữ liệu ở các định dạng linh hoạt, ví dụ như đồ thị, khóa/giá trị và tài liệu có thể dễ dàng lưu trữ nhiều dữ liệu khác nhau. Và, vì dữ liệu không được liên kết liên quan, cơ sở dữ liệu NoQuery có thể nhanh hơn và dễ dàng hơn đáng kể để thiết kế, cập nhật và quy mô.

Có lẽ cơ sở dữ liệu NoQuery được sử dụng phổ biến nhất là MongoDB, cơ sở dữ liệu tài liệu nguồn mở. Trên thực tế, sự kết hợp giữa MongoDB cho cơ sở dữ liệu, khung Express cho phần cuối, phản ứng cho phần đầu và Node.js vì máy chủ web phổ biến đến mức nó được gọi là ngăn xếp MERN cho các ứng dụng web. Đối 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 NoQuery.

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

Khi tạo cơ sở dữ liệu, bạn có thể chọn thiết lập nó cục bộ hoặc trên đám mây. Ví dụ: bạn có thể quay một bản cài đặt trên localhost theo cách thủ công của MongoDB bằng cách tải xuống và cài đặt MongoDB. Điều đó nói rằng, một 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 thích 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 né tránh việc cài đặt thủ công.

Đối với các dịch vụ đám mây, có MongoDB Atlas, cung cấp dịch vụ cơ sở dữ liệu từ MongoDB. Đó là sự bất khả tri của 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 và tỷ lệ đơn giản như nhấp vào nút. Họ cũng làm cho nó dễ dàng bắt đầu, với một tầng M0 miễn phí. Tổng thời gian từ đăng ký đến việc có cơ sở dữ liệu được tạo là chưa đến năm phút đối với tôi.


Tìm kiếm một 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 được thực hiện dễ dàng hơn khi có một trình điều khiển được hỗ trợ chính thức cho giao diện. .

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à dễ sử dụng. Cài đặt nó trong dự án Node.js của bạn đơn giản như đang chạy lệnh sau:

npm install mongodb --save

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

Để 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 cho các nhà phát triển JavaScript.

Làm thế nào để tôi bắt đầu với MongoDB?

Tự hỏi bắt đầu từ đâu? Đây là một hướng dẫn ngắn gọn để giúp bạn bắt đầu.


Cài đặt Node.js và NPM

Đầu tiên, bạn sẽ cần cài đặt Node.js. Tôi đề xuất 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 nút và nó đi cùng với Node.js để cho phép cài đặt dễ dàng của nhiều gói bên thứ ba.


Thêm trình điều khiển MongoDB Node.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 mới nhất của trình điều khiển và lưu nó vào gói của bạn.json config.

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

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

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

Hướng dẫn can nodejs be used as database? - nodejs có thể được sử dụng làm cơ sở dữ liệu không?

3. Tải dữ liệu mẫu trong các bộ sưu tập của người Viking.

Hướng dẫn can nodejs be used as database? - nodejs có thể được sử dụng làm cơ sở dữ liệu không?

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

Hướng dẫn can nodejs be used as database? - nodejs có thể được sử dụng làm cơ sở dữ liệu không?

Theo mặc định, người dùng có cả quyền đọc và ghi cho 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; Nhưng đối với một ứng dụng sản xuất, bạn nên xem xét cẩn thận những quyền là cần thiết cho mỗi người dùng.

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

Hướng dẫn can nodejs be used as database? - nodejs có thể được sử dụng làm cơ sở dữ liệu không?

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

Hướng dẫn can nodejs be used as database? - nodejs có thể được sử dụng làm cơ sở dữ liệu không?

6. Sao chép mã kết nối được cung cấp trong mẫu và điền vào mật khẩu của bạn và mẫu 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:<dbpassword>@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 điều này dưới dạng trên Mongo.js trên hệ thống tệp của bạn, hãy thử nó 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ố tin nhắn thông tin. Hãy để đi trước và tạo ra một số đầu ra.will not see any output other than some informational messages. Let’s go ahead and create some output.

Cách hiển thị dữ liệu từ cơ sở dữ liệu Atlas MongoDB trong Node.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 để Lừa thực hiện một chút truy vấn. Tôi đã tạo ra một chức năng 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()}`
      );
    });
  }
}

Đi trước và sao chép nó vào cuối tệp Mongo.js của bạn. 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 Async và xóa cuộc 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:<dbpassword>@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:<dbpassword>@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 lại Node Mongo.js và bạn sẽ thấy năm danh sách trong bảng điều khiển của mình:

Hướng dẫn can nodejs be used as database? - nodejs có thể được sử dụng làm cơ sở dữ liệu không?

Thành công! Bạn đã kết nối với, truy vấn và hiển thị dữ liệu từ cơ sở dữ liệu MongoDB của bạn. Để biết từng bước từng bước và nhiều ví dụ về 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 ứng dụng 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 với mongDB. Mặc dù đôi khi thế giới của cơ sở dữ liệu có thể phức tạp và đáng sợ, tôi hy vọng bài viết này làm cho nó đơn giản hơn một chút cho bạn.

Chúng ta có thể sử dụng nút JS làm cơ sở dữ liệu không?

Node Node.js chỉ có thể được sử dụng với MongoDB (là cơ sở dữ liệu NoQuery phổ biến nhất).Node. js can only be used with MongoDB (which is the most popular NoSQL database).”

Node JS có tốt cho cơ sở dữ liệu quan hệ không?

Node.js hỗ trợ tất cả các loại cơ sở dữ liệu (quan hệ và không liên quan) và khi được ghép nối với cơ sở dữ liệu phù hợp, nút. JS có thể cung cấp năng lượng cho một loạt các trường hợp sử dụng dữ liệu khác nhau. Bây giờ, hãy kiểm tra xem cơ sở dữ liệu quan hệ hay NoQuery sẽ phù hợp với ứng dụng của bạn cần tốt hơn. js supports all kinds of databases (relational and non-relational), and when paired with the right database, Node. js can power a variety of different data use cases. Now, let's examine whether a relational or a NoSQL database will suit your application needs better.

Node JS SQL hay NoQuery?

Node.js hỗ trợ tất cả các loại cơ sở dữ liệu, bao gồm cơ sở dữ liệu quan hệ và NoQuery. Tuy nhiên, nút. Cơ sở dữ liệu JS NoQuery là phù hợp nhất cho hầu hết các ứng dụng và trường hợp sử dụng trên toàn công ty. js supports all types of databases, including relational and NoSQL databases. However, Node. js NoSQL databases are the best match for most applications and company-wide use-cases.

NodeJS có tốt để xử lý dữ liệu không?

Node.js cho phép các nhà phát triển viết javascript cả trên máy chủ và máy khách, do đó giúp dễ dàng gửi dữ liệu giữa máy chủ và máy khách tự động đồng bộ hóa dữ liệu.Aeteor Một khung ứng dụng web được xây dựng trên đầu nút.JS thực hiện cùng một cơ sở mã trên cả máy khách và máy chủ. js lets developers write JavaScript both on the server and client, thereby making it easy to send data between the server and the client to synchronize the data automatically. Meteor a web app framework built on top of Node. js executes the same codebase on both client and the server.

MongoDB và Node Js có giống nhau không?

Nút.JS là một công nghệ phát triển nhanh chóng đã vượt qua thế giới của lập trình phía máy chủ với tốc độ đáng ngạc nhiên.MongoDB là một công nghệ cách mạng hóa việc sử dụng cơ sở dữ liệu.Cùng nhau, hai công cụ là một sự kết hợp mạnh mẽ, nhờ thực tế là cả hai đều sử dụng JavaScript và JSON.the two tools are a potent combination, thanks to the fact that they both employ JavaScript and JSON.

Có tốt không khi sử dụng MySQL với Node JS?

JS được kết hợp với MongoDB và các cơ sở dữ liệu NoQuery 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 nút.JS cho một cơ sở dữ liệu hiện có, rất có khả năng bạn sẽ sử dụng MySQL, một trong những cơ sở dữ liệu nguồn mở phổ biến nhất thế giới.Node. js performs well with relational databases like MySQL, too. If you want to write a new microservice with Node. js for an existing database, it's highly likely that you'll use MySQL, one of the world's most popular open-source databases.