Helpex - Trao đổi & giúp đỡ Đăng nhập

Sử dụng MongoDB trên Ứng dụng Node.js Sử dụng Mongoose

Sử dụng MongoDB trên Ứng dụng Node.js Sử dụng Mongoose

Giới thiệu

Trong bài đăng này, chúng ta sẽ xem làm thế nào chúng ta có thể sử dụng  MongoDB  trong ứng dụng Node.js của mình với sự trợ giúp của gói Mongoose. Chúng tôi cũng sẽ trình bày một số sự thật về MongoDB để, với tư cách là người đọc, bạn sẽ hiểu lý do tại sao chúng tôi đã chọn MongoDB làm phụ trợ của chúng tôi. Chúng tôi sẽ thực hiện một số bước để cài đặt các gói cần thiết bằng thiết bị đầu cuối quản lý gói nút, vì vậy hãy đồng ý với tôi. Cuối bài viết này, tôi đảm bảo rằng bạn sẽ thành thạo về cách kết nối cơ sở dữ liệu MongoDB với ứng dụng Node của bạn. Tôi hy vọng bạn sẽ thích bài viết này.

Tại sao MongoDB?

Ở đây, tôi sẽ liệt kê các lý do tại sao tôi chọn MongoDB.

  1. MongoDB là một cơ sở dữ liệu NoQuery - khi tôi nói NoQuery, điều đó có nghĩa là nó không có bất kỳ cấu trúc nào để tuân theo.
  2. Không có mối quan hệ, chúng tôi có thể thực hiện mối quan hệ bằng cách sử dụng các gói riêng biệt như Mongoose.
  3. Mọi thứ đều là JSON, thậm chí dữ liệu và bộ sưu tập được lưu trữ dưới dạng JSON.
  4. Vì dữ liệu được lưu trữ dưới dạng JSON, nên không cần chuyển đổi nữa. Chúng tôi có thể trực tiếp sử dụng nó trong ứng dụng của chúng tôi.

Bạn luôn có thể sao chép hoặc tải mã nguồn tại đây .

Lý lịch

Node.js đã trở thành một xu hướng bây giờ. Một trong những cơ sở dữ liệu được đề xuất cho ứng dụng Node là MongoDB. Như chúng ta đã thảo luận, cơ sở dữ liệu MongoDB không có bất kỳ cấu trúc nào được tích hợp, ở đây chúng ta sẽ sử dụng một gói có tên Mongoose, với điều đó chúng ta có thể tạo một số cấu trúc cho cơ sở dữ liệu của mình. Hãy bỏ qua cuộc nói chuyện và bắt đầu phát triển.

Thiết lập ứng dụng nút

Để bắt đầu với Node.js, hãy tạo một thư mục và đặt tên cho nó; đây sẽ là thư mục dự án của chúng tôi. Ở đây, tôi sẽ sử dụng một trong những biên tập viên yêu thích của tôi, Visual Studio Code. Bây giờ hãy chỉ vào vùng chứa dự án của bạn và chạy lệnh bên dưới.

npm init

Điều này sẽ tạo một tệp có tên "Package.json" trong thư mục của bạn. Chúng tôi sẽ sớm thêm tất cả các phụ thuộc của chúng tôi vào tệp này. Lệnh có thể hỏi bạn một số câu hỏi mặc định mà bạn cần trả lời. Nếu bạn cần tạo tệp pack.json với các giá trị mặc định trong đó, bạn có thể xem xét chạy lệnh bên dưới.

npm init --yes

Hãy xem lại tệp pack.json của chúng tôi.

{
  "name": "node-mongodb-mongoose",
  "version": "1.0.0",
  "description": "A Node application with MongoDB and Mongoose",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "Node",
    "Mongoose",
    "MongoDB"
  ],
  "author": "Sibeesh Venu",
  "license": "ISC"
}

Lấy các gói cần thiết

Bây giờ chúng tôi đã có sẵn ứng dụng, hãy chuẩn bị sẵn các gói cần thiết.

npm install --save mongoose

Điều này sẽ tạo một thư mục mới, npm_modules, trên thư mục dự án của bạn, nơi bạn có thể thấy gói Mongoose trong đó.

npm install --save express

Lệnh trên sẽ thêm gói express vào ứng dụng của chúng tôi.

Tạo ứng dụng nút

Bây giờ chúng ta có thể tạo tệp server.js nơi chúng ta sẽ viết hầu hết mã ứng dụng của mình.

var express = require("express")
var app = express()
app.listen("3010",()=>{
    console.log("I just started listening!.")
})

Bây giờ hãy chạy lệnh node server.jsvà đảm bảo rằng bạn đang nhận được thông báo, "Tôi mới bắt đầu nghe!"

Nếu bạn gặp phải lỗi sau, vui lòng đảm bảo rằng bạn đang chạy ứng dụng trên một cổng không sử dụng.

PS F: \ Visual Studio \ Node.JS \ Node-MongoDB-Mongoose> nút
server.js event.js: 136
throw er; // Sự kiện 'lỗi' chưa được xử lý
^

Lỗi: nghe EADDRINUSE ::: 3000
tại Object._errnoException (util.js: 1031: 13)
tại _exceptionWithHostPort (util.js: 1052: 20)
tại Server.setupListenHandle [như _listen2] (net.js: 1367: 14)
tại ngheInCluster (net.js: 1408: 12)
tại Server.listen (net.js: 1496: 7)
tại Function.listen (F: \ Visual Studio \ Node.JS \ Node-MongoDB-Mongoose \ node_modules \ express \ lib \ application.js: 618: 24)
tại Object. (F: \ Visual Studio \ Node.JS \ Node-MongoDB-Mongoose \ server.js: 3: 5)
tại Module._compile (module.js: 641: 30)
tại Object.Module._extensions..js (module.js: 652: 10)
tại Module.load (module.js: 560: 32) "

Thiết lập cơ sở dữ liệu

Bây giờ chúng tôi đã sẵn sàng ứng dụng của chúng tôi, hãy đi và tạo cơ sở dữ liệu của chúng tôi. Tôi sẽ sử dụng mLab để tạo cơ sở dữ liệu. Nếu bạn chưa cài đặt MongoDB trên máy của mình, tôi thực sự khuyên bạn nên tạo cơ sở dữ liệu trong mLab. Tôi đã tạo một cơ sở dữ liệu ở đó và có chuỗi kết nối của tôi như sau.

mongodb://<dbuser>:<dbpassword>@ds038319.mlab.com:38319/mylearning</dbpassword></dbuser>

Chúng tôi sẽ cập nhật chuỗi kết nối với người dùng và mật khẩu DB thực tế sau đó. Vui lòng đảm bảo rằng bạn đang tạo người dùng cho DB của mình và nhớ mật khẩu.

Tạo mô hình Mongoose

Hãy tạo một mô hình Mongoose và thiết lập chuỗi kết nối của chúng tôi ngay bây giờ, đây sẽ là bộ sưu tập của chúng tôi. Đừng lo lắng, nó chỉ là một mô hình JavaScript .

var conString = "mongodb://admin:admin@ds038319.mlab.com:38319/mylearning"

/**
 * Models 
 */
var User = mongoose.model("User", {
    firstName: String,
    lastName: String
})

Xin lưu ý rằng khi bạn chuyển mã sang sản xuất, hãy đảm bảo rằng mật khẩu và trường người dùng trên chuỗi kết nối được tách biệt khỏi tệp này và được mã hóa.

Bây giờ hãy kết nối cơ sở dữ liệu của chúng tôi.

mongoose.connect(conString, { useMongoClient: true }, () => {
    console.log("DB is connected")
})

Thiết lập dữ liệu

Chúng tôi đã có mô hình của chúng tôi sẵn sàng, những gì cần thiết bây giờ? Vâng, bạn đã đúng, chúng tôi cần dữ liệu.

var dummyUser = {
    firstName: "Sibeesh",
    lastName: "Venu"
}

Chèn dữ liệu vào MongoDB

Chúng tôi đã sẵn sàng mọi thứ, vì vậy chúng tôi có thể chèn mô hình ngay bây giờ. Trước tiên hãy làm logic tiết kiệm.

mongoose.connect(conString, { useMongoClient: true }, () => {
    console.log("DB is connected")
    saveData()
})
function saveData() {
    var user = new User(dummyUser);
    user.save();
}

Xác nhận dữ liệu

Khi bạn chạy ứng dụng của mình, hãy truy cập cơ sở dữ liệu của bạn và kiểm tra các mục ở đó. Tôi chắc chắn sẽ có một bộ sưu tập mới ("Người dùng") và dữ liệu được chèn của chúng tôi. Vì tôi đang sử dụng cơ sở dữ liệu mLab, đây là cách lưu dữ liệu của tôi.

Sử dụng MongoDB trên Ứng dụng Node.js Sử dụng Mongoose

Nếu bạn đã nhận thấy, bạn có thể thấy có một tên thuộc tính khác "_id" trong bộ sưu tập cơ sở dữ liệu của chúng tôi. Đây là một id duy nhất do MongoDB tạo ra cho chúng tôi, vì vậy không cần phải suy nghĩ về nó.

Vì mục đích của bài viết này là chỉ ra cách chúng ta có thể chèn dữ liệu vào MongoDB, tôi đã gọi phương thức lưu ngay sau khi cơ sở dữ liệu được kết nối. Trong cuộc sống thực, đây không phải là một phương pháp được đề xuất. Bạn phải tạo một yêu cầu bài viết Ajax và xử lý sự kiện. Tôi đang để lại nhiệm vụ đó cho bạn. Hãy cố gắng làm điều đó và cho tôi biết. Tôi rất thích nghe lại từ bạn.

Phần kết luận

Trân thành cảm ơn vì đã đọc. Tôi đã bỏ lỡ bất cứ điều gì mà bạn nghĩ là cần thiết? Bạn có thấy bài đăng này hữu ích? Tôi hy vọng bạn thích bài viết này. Hãy chia sẻ với tôi những gợi ý và phản hồi có giá trị của bạn.

Trân trọng
Sibeesh Venu

5 hữu ích 0 bình luận 5.6k xem chia sẻ

Có thể bạn quan tâm

loading