Cách sử dụng MongoDB với Node JS

Nút. js là mã nguồn mở và hoàn toàn miễn phí—hàng nghìn nhà phát triển trên khắp thế giới sử dụng nó hàng ngày. Họ sử dụng nó để phát triển các ứng dụng web chuyên sâu I/O, chẳng hạn như các trang web phát video, ứng dụng một trang, ứng dụng trò chuyện trực tuyến và tất cả các loại ứng dụng web khác. Được xây dựng trên môi trường thời gian chạy dựa trên JavaScript của Google Chrome, Node. js mang lại nhiều lợi thế cho bảng, khiến nó trở thành lựa chọn tốt hơn so với các nền tảng phía máy chủ khác, như Java hoặc PHP.  

nút này. js Hướng dẫn MongoDB sẽ giúp bạn tìm hiểu cách kết nối máy chủ web của bạn với cơ sở dữ liệu. Đầu tiên, chúng ta sẽ tìm hiểu các khái niệm cơ bản về MongoDB, sau đó chúng ta sẽ tạo ứng dụng web của mình. Ứng dụng sẽ cho phép chúng tôi thêm, chỉnh sửa và xóa sinh viên trong cơ sở dữ liệu MongoDB và hiển thị danh sách sinh viên trong cơ sở dữ liệu trên trình duyệt

MongoDB là gì?

  • MongoDB là một cơ sở dữ liệu hướng tài liệu, đa nền tảng, cung cấp hiệu suất cao và khả năng mở rộng. Nó hoạt động trên các khái niệm về bộ sưu tập và tài liệu
  • Nó là một cơ sở dữ liệu NoSQL và được viết bằng C++
  • Để có thể sử dụng MongoDB, hãy tải xuống cơ sở dữ liệu MongoDB miễn phí từ trang web chính thức

MongoDB hoạt động chủ yếu trên hai khái niệm sau

thu thập

Một bộ sưu tập là một nhóm các tài liệu MongoDB; . Thông thường, tất cả các tài liệu trong một bộ sưu tập đều có mục đích giống nhau

Tài liệu

Tài liệu là một tập hợp các cặp khóa-giá trị. Các tài liệu có lược đồ động, nghĩa là các tài liệu trong cùng một bộ sưu tập không cần phải có cùng một nhóm trường hoặc cấu trúc. Các trường phổ biến trong tài liệu của bộ sưu tập có thể chứa các loại dữ liệu khác nhau

Tại sao kết nối Node. js với MongoDB?

Tất cả các ứng dụng hiện đại đều dựa trên dữ liệu lớn, phát triển tính năng nhanh và triển khai linh hoạt. Cơ sở dữ liệu truyền thống và hỗ trợ các yêu cầu này. Nhập MongoDB

Tạo cơ sở dữ liệu MongoDB trong nút. js

Để tạo cơ sở dữ liệu trong Node. js MongoDB

  • Bắt đầu bằng cách tạo một đối tượng MongoClient
  • Chỉ định URL kết nối với địa chỉ IP chính xác và tên của cơ sở dữ liệu bạn muốn tạo

Xây dựng hệ thống quản lý sinh viên

Nút. cài đặt js

1. Tải xuống nút. js từ https. //nodejs. org/vi/tải xuống/. Chọn trình cài đặt theo hệ điều hành và môi trường của bạn

Quả sung. Nút. trang tải js

2. Chạy nút. js và chấp nhận thỏa thuận cấp phép. Bạn có thể để các cài đặt khác như mặc định. Trình cài đặt sẽ cài đặt Node. js và nhắc bạn nhấp vào nút kết thúc

Quả sung. Nút. thiết lập js

3. Xác minh rằng nút. js đã được cài đặt đúng cách bằng cách mở dấu nhắc lệnh và gõ lệnh này. nút --version

Quả sung. Nút. xác minh js

4. Khi chúng tôi cài đặt Node. js, NPM (Trình quản lý gói nút) cũng được cài đặt. NPM bao gồm nhiều thư viện được sử dụng trong các ứng dụng web, chẳng hạn như React. Xác minh xem nó đã được cài đặt hay chưa bằng lệnh sau trong CMD. npm --version

Quả sung. xác minh NPM

soạn thảo văn bản

Cài đặt trình soạn thảo văn bản bạn chọn. Chúng tôi đang sử dụng Visual Studio Code trong hướng dẫn này, nhưng bạn cũng có thể sử dụng các trình chỉnh sửa khác—như Atom và Sublime Text—nếu bạn cảm thấy thoải mái hơn với những trình soạn thảo đó

Quả sung. Trang tải xuống mã Visual Studio

Cài đặt MongoDB

Tương tự với Node. js, bạn có thể tải xuống MongoDB Community Server từ trang web chính thức của nó. Sau đó, mở trình cài đặt và giữ cài đặt mặc định để cài đặt MongoDB trên hệ thống của bạn.  

Ghi chú. MongoDB Compass cũng sẽ được cài đặt trong quá trình này, sau này chúng tôi sẽ sử dụng để kiểm tra trạng thái cơ sở dữ liệu của mình

Thiết lập dự án

  1. Tạo một thư mục trống và đặt tên là mongodb_crud
  2. Mở thư mục vừa tạo trong VS Code và bên trong terminal, gõ npm init để khởi tạo project. Nhấn Enter để giữ nguyên cài đặt mặc định

Quả sung. Dự án mã VS

Hãy viết mã ngay bây giờ

Chúng tôi sẽ tạo Nút của chúng tôi. Hệ thống quản lý sinh viên dựa trên js. Ứng dụng này sẽ cho phép người dùng kết nối với cơ sở dữ liệu MongoDB để họ có thể tạo, cập nhật hoặc xóa hồ sơ sinh viên khi cần

Để cung cấp cho bạn ý tưởng về những gì chúng tôi đang cố gắng đạt được và trước quy trình làm việc của dự án sẽ như thế nào, hãy tham khảo hình ảnh bên dưới.  



Các thành phần

người phục vụ. js

Tạo một tệp có tên máy chủ. js trong thư mục dự án. Tệp này trong ứng dụng của chúng tôi đóng vai trò là máy chủ chính—nơi chúng tôi kết nối nó với các tệp khác trong dự án này

// Nút. máy chủ js MongoDB

yêu cầu(". /mô hình/db");

const express = yêu cầu ("bày tỏ");

const đường dẫn = yêu cầu ("đường dẫn");

const handleBars = require("tay lái");

const exphbs = require("tay lái nhanh");

hăng sô {

allowInsecurePrototypeAccess

} = yêu cầu("@tay lái/cho phép truy cập nguyên mẫu");

const bodyparser = require("body-parser");

const studentController = require(". /bộ điều khiển/studentController");

ứng dụng var = express();

ứng dụng. sử dụng (bodyparser. được mã hóa url ({ đã mở rộng. thật }));

ứng dụng. sử dụng (bodyparser. json());

ứng dụng. get("/", (req, res) => {

độ phân giải. gửi(`

Chào mừng đến với Cơ sở dữ liệu sinh viên.

  

Click here to get access to the Database

`);

});

ứng dụng. set("lượt xem", đường dẫn. tham gia (__dirname, "/ lượt xem /"));

ứng dụng. động cơ(

"hbs",

exphbs({

tay lái. allowInsecurePrototypeAccess(handleBars),

tên phụ. "hbs",

bố cục mặc định. "bố cục chính",

bố tríDir. __dirname + "/views/layouts/"

})

);

ứng dụng. set("công cụ xem", "hbs");

ứng dụng. nghe (3000, () => {

bảng điều khiển. log("Máy chủ tốc hành đã khởi động tại cổng. 3000");

});

ứng dụng. sử dụng("/sinh viên", studentController);

  • Nhập cơ sở dữ liệu từ thư mục mô hình
  • Nhập một số mô-đun được yêu cầu trong ứng dụng. express, path, handlebars, express-handlebars, body-parser và @handlebars/allow-prototype-access
  • Thêm các mô-đun này bằng thiết bị đầu cuối bên trong VSCode

  • Sau đó, chúng tôi sử dụng bodyparser để phân tích cú pháp JSON trong yêu cầu HTTP
  • Sau đó, chúng tôi sử dụng ứng dụng. get() để chuyển hướng người dùng đến localhost. 3000/sinh viên/danh sách để xem nội dung trong cơ sở dữ liệu sinh viên
  • Sau đó, hãy đặt thư mục chế độ xem trong đó chúng tôi sẽ viết mã cho giao diện người dùng—trong trường hợp của chúng tôi, mẫu tay lái (đó là lý do tại sao công cụ xem được đặt thành hbs)
  • Cuối cùng, đặt máy chủ lắng nghe ở cổng 3000 và sử dụng studentController mà chúng ta sẽ tạo sau trong dự án

db. js

Tệp này được sử dụng để kết nối ứng dụng với cơ sở dữ liệu MongoDB. Đối với điều này, trước tiên hãy tạo một thư mục và đặt tên là models. Trong thư mục đó, tạo một tệp mới có tên db. js. Có thể có một số mục bị thiếu trong thư mục gốc—đây chỉ là quy ước mà các ứng dụng web tuân theo để tăng khả năng đọc và sử dụng lại mã

const cầy mangut = require("cầy mangut");

cầy mangut. liên kết(

"mongodb. //máy chủ cục bộ. 27017/StudentDB",

{

sử dụngNewUrlParser. thật

},

sai => {

nếu (. sai) {

bảng điều khiển. log("Kết nối thành công");

} khác {

bảng điều khiển. log("Lỗi kết nối. " + lỗi);

}

}

);

yêu cầu(". /sinh viên. kiểu mẫu");

  • Trước tiên, hãy cài đặt mô-đun cầy mangut bằng thiết bị đầu cuối mà VSCode cung cấp, giống như cách chúng ta đã làm trước đây cho máy chủ. tập tin js
  • Sau đó, sử dụng phương thức connect() để kết nối với cơ sở dữ liệu MongoDB. Để làm như vậy, bạn sẽ muốn thực hiện các bước sau
  • Thêm URL cho cơ sở dữ liệu
  • Viết hàm gọi lại lỗi để xử lý mọi trường hợp ngoại lệ có thể xảy ra

sinh viên. kiểu mẫu. js

Bây giờ, hãy xác định lược đồ sinh viên cho cơ sở dữ liệu trong tệp này

const cầy mangut = require("cầy mangut");

var studentSchema = cầy mangut mới. Lược đồ({

Họ và tên. {

loại. Chuỗi,

cần thiết. 'Trường này là bắt buộc'

},

e-mail. {

loại. Chuỗi,

cần thiết. 'Trường này là bắt buộc'

},

di động. {

loại. Con số,

cần thiết. 'Trường này là bắt buộc'

},

thành phố. {

loại. Chuỗi,

cần thiết. 'Trường này là bắt buộc'

}

});

cầy mangut. model("Sinh viên", studentSchema);

  • Đầu tiên, nhập mô-đun cầy mangut trong tệp
  • Tạo một biến và đặt tên là studentSchema
  • Sau đó, sử dụng cầy mangut. Schema() và xác định các trường bắt buộc để thêm dữ liệu vào cơ sở dữ liệu
  • Đặt mô hình “Sinh viên” thành studentSchema

sinh viênđiều khiển. js

Bộ điều khiển nhận các yêu cầu của người dùng và chuyển chúng thành các hành động mà mô hình sẽ thực hiện. Sau đó, nó chọn chế độ xem thích hợp để xử lý phản hồi

Hãy tạo một thư mục mới và đặt tên là bộ điều khiển. Trong thư mục đó, tạo một tệp mới và đặt tên là studentController. js

const express = yêu cầu ("bày tỏ");

bộ định tuyến var = express. Bộ định tuyến();

const cầy mangut = require("cầy mangut");

const Sinh viên = cầy mangut. học sinh gương mẫu");

bộ định tuyến. get("/", (req, res) => {

độ phân giải. kết xuất ("sinh viên/addOrEdit", {

xemTiêu đề. "Chèn sinh viên"

});

});

bộ định tuyến. bài đăng("/", (req, res) => {

nếu (yêu cầu. thân thể. _id == "") {

insertRecord(req, res);

} khác {

updateRecord(req, res);

}

});

 

hàm insertRecord(req, res) {

var sinh viên = sinh viên mới();

sinh viên. fullName = req. thân thể. Họ và tên;

sinh viên. email = yêu cầu. thân thể. e-mail;

sinh viên. di động = yêu cầu. thân thể. di động;

sinh viên. thành phố = yêu cầu. thân thể. thành phố;

sinh viên. lưu ((err, doc) => {

nếu (. sai) {

độ phân giải. redirect("sinh vien/danh sach");

} khác {

bảng điều khiển. log("Lỗi khi chèn. " + lỗi);

}

});

}

 

chức năng updateRecord(req, res) {

Sinh viên. findOneAndUpdate(

{ _Tôi. yêu cầu. thân thể. _Tôi },

yêu cầu. thân thể,

{ Mới. thật },

(err, doc) => {

nếu (. sai) {

độ phân giải. redirect("sinh vien/danh sach");

} khác {

bảng điều khiển. log("Lỗi khi cập nhật. " + lỗi);

}

}

);

}

 

bộ định tuyến. get("/list", (req, res) => {

Sinh viên. tìm ((err, tài liệu) => {

nếu (. sai) {

độ phân giải. render("sinh vien/danh sach", {

danh sách. tài liệu

});

} khác {

bảng điều khiển. log("Lỗi khi truy xuất. " + lỗi);

}

});

});

 

bộ định tuyến. được("/. id", (req, res) => {

Sinh viên. findById(yêu cầu. thông số. id, (err, doc) => {

nếu (. sai) {

độ phân giải. kết xuất ("sinh viên/addOrEdit", {

xemTiêu đề. "Cập nhật sinh viên",

sinh viên. tài liệu

});

bảng điều khiển. nhật ký (tài liệu);

}

});

});

 

bộ định tuyến. lấy("/xóa/. id", (req, res) => {

Sinh viên. findByIdAndRemove(req. thông số. id, (err, doc) => {

nếu (. sai) {

độ phân giải. redirect("/sinh vien/danh sach");

} khác {

bảng điều khiển. log("Lỗi khi xóa. " + lỗi);

}

});

});

mô-đun. xuất khẩu = bộ định tuyến;

  • Trước tiên hãy nhập các mô-đun cần thiết cho tệp này, đó là
    • bày tỏ
    • cầy mangut
    • Sinh viên (chúng tôi vừa tạo mô hình này)
  • Bây giờ, hãy thêm nhiều tuyến đường để người dùng có thể xem và thực hiện nhiều thao tác
    • bộ định tuyến. get() để cho phép người dùng thêm hoặc chỉnh sửa sinh viên trong cơ sở dữ liệu. Bộ định tuyến này sẽ hiển thị giao diện người dùng để thêm hoặc chỉnh sửa người dùng;
    • bộ định tuyến. post() để cho phép người dùng thêm hoặc cập nhật bản ghi vào cơ sở dữ liệu
  • Định nghĩa một hàm insertRecord(), để thêm các bản ghi vào cơ sở dữ liệu
  • Định nghĩa một hàm updateRecord(), để cập nhật các bản ghi trong cơ sở dữ liệu
  • Thêm một tuyến GET mới để lấy danh sách các bản ghi từ cơ sở dữ liệu
  • Cuối cùng, thêm hai tuyến GET, sẽ cập nhật các bản ghi và xóa chúng khỏi cơ sở dữ liệu

bố cục chính. hbs

Tệp HBS là một mẫu mà Tay lái tạo, là một hệ thống mẫu web. Trong tệp này, chúng tôi thêm một mẫu được viết bằng mã HTML, sau đó nhúng mẫu đó với các biểu thức Tay lái

Tệp này sẽ hoạt động như một thùng chứa bố cục cho giao diện người dùng ứng dụng

Đầu tiên, tạo một thư mục mới và đặt tên là layouts. Trong thư mục đó, tạo một tệp mới và đặt tên tệp là mainLayout. hbs

<. LOẠI TÀI LIỆU html>

<đầu>

Sinh viên

    

vẹn="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">

#hộp {

màu nền. #ffff;

lề trên. 25px;

đệm. 20px;

-webkit-box-shadow. 10px 10px 20px 1px rgba(0, 0, 0, 0. 75);

-moz-box-shadow. 10px 10px 20px 1px rgba(0, 0, 0, 0. 75);

bóng hộp. 10px 10px 20px 1px rgba(0, 0, 0, 0. 75);

bán kính đường viền. 10px 10px 10px 10px;

-moz-biên giới-bán kính. 10px 10px 10px 10px;

-webkit-biên giới-bán kính. 10px 10px 10px 10px;

ranh giới. 0px rắn #000000;

}

    

{{{thân thể}}}

  • Thêm mã khung HTML cơ bản để hiển thị dữ liệu ở dạng hộp
  • Để làm cho thiết kế trông đẹp mắt, hãy sử dụng Bootstrap CSS để tạo kiểu cho các phần tử
  • Sau đó, thêm các kiểu có liên quan vào thẻ div để làm cho nó trông giống như một chiếc hộp lạ mắt có bóng
  • {{{body}}} là một biểu thức Tay cầm có chứa các phần tử trong trang

thêmOrEdit. hbs

Trong tệp này, chúng tôi sẽ viết mã cho biểu mẫu mà người dùng có thể sử dụng để thêm hoặc chỉnh sửa bản ghi trong cơ sở dữ liệu.  

Đầu tiên, tạo một thư mục mới và đặt tên là “sinh viên”. Trong thư mục đó, tạo một tệp mới và đặt tên tệp là addOrEdit. hbs

{{viewTitle}}

Tên đầy đủ

    

Email

    

        

Thành phố

        

    

Xem tất cả

    

  • Tệp này tạo biểu mẫu được hiển thị trên màn hình
  • Biểu mẫu này dành cho người dùng để thêm hoặc cập nhật một bản ghi trong cơ sở dữ liệu
  • Trong tệp cụ thể này, chúng tôi tạo một biểu mẫu HTML cơ bản với tất cả các trường nhập bắt buộc
  • Cuối cùng, hãy thêm một vài nút. Một để gửi biểu mẫu và một để quay lại danh sách sinh viên mà không thao tác dữ liệu

Danh sách. hbs

Tệp này sẽ hiển thị danh sách tất cả các hồ sơ sinh viên trong cơ sở dữ liệu. Trong thư mục sinh viên mà chúng ta đã tạo trước đó, tạo một tệp mới và đặt tên là Danh sách. hbs

Tạo mới           Danh sách sinh viên

        

    

{{#mỗi danh sách}}

        

{{/mỗi}}

    

Tên đầy đủEmailDi độngThành phố
{{cái này. họ tên}}{{cái này. email}}{{cái này. di động}}{{cái này. thành phố}}

Chỉnh sửa

                

onclick="return confirm('Bạn có chắc chắn muốn xóa bản ghi này ?');">Xóa

            

  • Trong tệp này, chúng tôi tạo một bảng HTML đơn giản để hiển thị hồ sơ học sinh ở định dạng bảng
  • Cú pháp được đặt trong các dấu ngoặc {{}} này là một biểu thức Tay lái tìm nạp danh sách và hiển thị nó trong trình duyệt web

Kết quả cuối cùng

Đây là cách cuối cùng Hệ thống quản lý sinh viên sẽ trông như thế nào và hoạt động như thế nào. Bạn có thể tự do điều chỉnh thiết kế của ứng dụng hoặc thêm bớt các tính năng trong ứng dụng

Vượt lên trên Curve và Master Node. js hôm nay

Bây giờ bạn đã tạo một Node chính thức. js trong hướng dẫn này, bạn có thể tự hỏi làm thế nào bạn có thể có được các kỹ năng cần thiết để tận dụng sự phổ biến ngày càng tăng của nó. May mắn thay, có một số lựa chọn tuyệt vời để học bộ kỹ năng thú vị và thiết thực này theo tốc độ của riêng bạn. Nút của Simplilearn. js sẽ cung cấp cho bạn một nền tảng tuyệt vời trong nền tảng phổ biến này, kết hợp đào tạo trực tiếp, có người hướng dẫn, hướng dẫn theo nhịp độ của bản thân và các dự án thực hành để giúp bạn sẵn sàng cho sự nghiệp sau khi hoàn thành. Bắt đầu ngay hôm nay và nắm bắt tương lai của bạn

Giới thiệu về tác giả

Cách sử dụng MongoDB với Node JS
Taha Sufiyan

Taha là một nhà phân tích nghiên cứu tại Simplilearn. Anh ấy đam mê xây dựng giao diện người dùng tuyệt vời và luôn cập nhật về thế giới Trí tuệ nhân tạo. Taha cũng thích chơi game và chụp ảnh

Làm cách nào để kết nối MongoDB bằng Node js?

Để kết nối một Nút. js sang MongoDB, chúng ta phải sử dụng thư viện có tên là Mongoose. cầy mangut. connect("mongodb. //máy chủ cục bộ. 27017/collectionName", { useNewUrlParser. đúng, sử dụngUnifiedTopology. đúng });

Tại sao nên sử dụng MongoDB với nút JS?

Nút MongoDB. trình điều khiển js sử dụng MongoDB với Node. js 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ọ.

Làm cách nào để tạo dữ liệu trong MongoDB bằng nút JS?

Để tạo cơ sở dữ liệu trong MongoDB, hãy bắt đầu bằng cách tạo đối tượng MongoClient, sau đó chỉ định URL kết nối với địa chỉ IP chính xác và tên của cơ sở dữ liệu bạn muốn tạo. MongoDB will create the database if it does not exist, and make a connection to it.

Làm cách nào để đọc dữ liệu từ MongoDB bằng nút JS?

Để chọn dữ liệu từ một bộ sưu tập trong MongoDB, chúng ta có thể sử dụng phương thức findOne() . Phương thức findOne() trả về lần xuất hiện đầu tiên trong vùng chọn. Tham số đầu tiên của phương thức findOne() là một đối tượng truy vấn.