1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở

34 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu về Nodejs và xây dựng ứng website chia sẻ nhà ở
Tác giả Đặng Thái Tài
Người hướng dẫn Th.S Nguyễn Công Hoan
Trường học Trường Đại học Công nghệ Thông tin, Đại học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Công nghệ Thông tin
Thể loại Đồ án
Năm xuất bản 2021
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 34
Dung lượng 5,95 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Với quỹ thời gian có hạn cũng như kinh nghiệm xây dựng sản phẩm còn thiếu, sản phẩm đồ án cuối cùng có thể sẽ mắc phải một số sai sót và chúng em rất mong sẽ nhận được những góp ý của cô

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI

HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM

ĐỒ ÁN 1

TÌM HIỂU VỀ NODEJS VÀ XÂY DỰNG ỨNG WEBSITE

CHIA SẺ NHÀ Ở

Giảng viên hướng dẫn: TH.S NGUYỄN CÔNG HOAN Sinh viên thực hiện: Đặng Thái Tài-20520923

Tp Hồ Chí Minh, Tháng 7 năm 2021

Trang 2

LỜI CẢM ƠN

Đầu tiên, nhóm thực hiện đề tài “Xây dựng website nghe mua điện thoại online” xin gửi lời cảm ơn đến quý thầy cô đã đang giảng dạy chúng em ở ngôi trường Đại học Công nghệ thông tin – Đại học quốc gia thành phố Hồ Chí Minh những kiến thức nền tảng vững chắc để nhóm có thể tự tìm hiểu và hoàn thiện đề tài này một cách tốt nhất

Đặc biệt, chúng em xin gửi lời cảm ơn tới cô Nguyễn Công Hoan vì sự tận tình hướng dẫn cũng như những góp ý, đề xuất quý báu của cô dành cho nhóm trong quá trình thực hiện đồ

án

Trong suốt thời gian qua, nhóm đã tự tìm hiểu các công nghệ mới và kết hợp với những kiến thức nền tảng trong quá trình học tập, nghiên cứu và vận dụng để thực hiện đề tài này Với quỹ thời gian có hạn cũng như kinh nghiệm xây dựng sản phẩm còn thiếu, sản phẩm đồ án cuối cùng có thể sẽ mắc phải một số sai sót và chúng em rất mong sẽ nhận được những góp ý của cô

để bổ sung, cải tiến sản phẩm cũng như nâng cao kiến thức để xây dựng các sản phẩm tiếp theo

sẽ chỉn chu và hoàn thiện hơn, và tích luỹ thêm cho mình những kinh nghiệm quý giá để đáp ứng tốt cho những công việc thực tế trong tương lai

Một lần nữa, xin cảm ơn cô vì đã đồng hành cùng chúng em trong suốt học kỳ I của năm

học này

Sinh viên thực hiện Đặng Thái Tài NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Trang 3

., ngày tháng……năm 2021 Người nhận xét (Ký tên và ghi rõ họ tên) Mục lục L I C M N ỜI CẢM ƠN ẢM ƠN ƠN 2

NH N XÉT C A GI NG VIÊN H ẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ỦA GIẢNG VIÊN HƯỚNG DẪN ẢM ƠN ƯỚNG DẪN NG D N ẪN 2

DANH M C VI T T T ỤC VIẾT TẮT ẾT TẮT ẮT 7

Đ C Ề CƯƠNG CHI TIẾT ƯƠN NG CHI TI T ẾT TẮT 7

Ch ương 1: GIỚI THIỆU ĐỀ TÀI ng 1: GI I THI U Đ TÀI ỚNG DẪN ỆU ĐỀ TÀI Ề CƯƠNG CHI TIẾT 11

1.1Tên đ tài: ề tài: 11

1.2 Mô t đ tài: ả đề tài: ề tài: 11

1.3 Lý do ch n đ tài: ọn đề tài: ề tài: 12

1.4 Kh o sát hi n tr ng: ả đề tài: ện trạng: ạng: 12

1.5 Công ngh s d ng: ện trạng: ử dụng: ụng: 13

1.5 Môi tr ường thiết kế: ng thi t k : ết kế: ết kế: 13

1.6 Công c h tr : ụng: ỗ trợ: ợ: 13

Ch ương 1: GIỚI THIỆU ĐỀ TÀI ng 2: C S LÝ THUY T ƠN Ở LÝ THUYẾT ẾT TẮT 13

2.1 T ng quan v HandleBarJs: ổng quan về HandleBarJs: ề tài: 13

2.1.1 Gi i thi u v HandleBarJs: ới thiệu về HandleBarJs: ện trạng: ề tài: 13

2.1.2 Khái ni m c b n trong HandleBarJs: ện trạng: ơ bản trong HandleBarJs: ả đề tài: 13

2.1.2.1 Bi u th c c a Handbars.js: ểu thức của Handbars.js: ức của Handbars.js: ủa Handbars.js: 13

2.1.2.2 Bi u th c c a Handbars.js: ểu thức của Handbars.js: ức của Handbars.js: ủa Handbars.js: 14

2.1.2.2 Hàm biên d ch Handbars.js: ịch Handbars.js: 14

2.1.3 u đi m c a Handlebarjs: Ưu điểm của Handlebarjs: ểu thức của Handbars.js: ủa Handbars.js: 14

2.2.1 NodeJS là gì? 15

Trang 4

2.2.2 Cách NodeJS ho t đ ng: ạng: ộng: 15

2.2.3 u đi m c a NodeJS: Ưu điểm của Handlebarjs: ểu thức của Handbars.js: ủa Handbars.js: 15

2.3.1 ExpressJS là gì? 16

2.3.2 Tính năng c a ExpressJS: ủa Handbars.js: 16

2.4 MongoDB: 17

2.4.1 MongoDB là gì: 17

2.4.2 M t s câu l nh c b n: ộng: ố câu lệnh cơ bản: ện trạng: ơ bản trong HandleBarJs: ả đề tài: 17

2.4.3 u đi m c a MongoDB: Ưu điểm của Handlebarjs: ểu thức của Handbars.js: ủa Handbars.js: 17

Ch ương 1: GIỚI THIỆU ĐỀ TÀI ng 3: 18

PHÂN TÍCH THI T K H TH NG ẾT TẮT ẾT TẮT ỆU ĐỀ TÀI ỐNG 18

3.1 S đ Use-case: ơ bản trong HandleBarJs: ồ Use-case: 18

3.1.1 Đăng nh p: ập: 19

3.1.2 Đăng xu t: ất: 20

3.1.3 Đăng ký thành viên: 21

3.1.5 Thay đ i thông tin các nhân: ổng quan về HandleBarJs: 24

3.1.6 Qu n lý thông tin cá nhân: ả đề tài: 25

3.1.7 Tìm ki m: ết kế: 27

3.1.8 Xem thông s n ph m: ả đề tài: ẩm: 28

Ch ương 1: GIỚI THIỆU ĐỀ TÀI ng 4: 29

THI T K GIAO DI N ẾT TẮT ẾT TẮT ỆU ĐỀ TÀI 29

4.1 Trang đăng nh p, đăng ký: ập: 29

1 4.1.1 Mô t : ả đề tài: 29

4.2 Trang ch : ủa Handbars.js: 30

4.2.1 Giao di n: ện trạng: 30

4.2.2 Mô t : ả đề tài: 31

4.3 Trang thông tin nhà ở: 32

4.3.1 Giao di n: ện trạng: 32

4.3.2 Mô t : ả đề tài: 32

4.4 Trang tìm ki m: ết kế: 32

4.4.1 Giao di n: ện trạng: 32

4.4.2 Mô t : ả đề tài: 32

4.5 Trang thông tin gi hàng: ỏ hàng: 33

4.5.1 Giao di n: ện trạng: 33

4.5.2 Mô t : ả đề tài: 33

4.6 Trang thông tin v n chuy n: ập: ểu thức của Handbars.js: 35

4.6.1 Giao di n: ện trạng: 35

4.6.2 Mô t : ả đề tài: 35

Ch ương 1: GIỚI THIỆU ĐỀ TÀI ng 5: 35

K T LU N ẾT TẮT ẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 35

Trang 5

5.1 Nh n xét: ập: 35

5.1.1 Thu n l i: ập: ợ: 35

5.1.2 Khó khăn: 36

5.1.3 u đi m c a đ án: Ưu điểm của Handlebarjs: ểu thức của Handbars.js: ủa Handbars.js: ồ Use-case: 36

5.1.4 Nh ượ: c đi m c a đ án: ểu thức của Handbars.js: ủa Handbars.js: ồ Use-case: 36

5.2 H ưới thiệu về HandleBarJs: ng phát tri n c a đ án: ểu thức của Handbars.js: ủa Handbars.js: ồ Use-case: 36

TÀI LI U THAM KH O ỆU ĐỀ TÀI ẢM ƠN 36

Trang 6

Mục Lục ảnh

Hình 1 Express js cung c p c ch đ nh tuy n giúp duy trì tr ng thái c a website ấp cơ chế định tuyến giúp duy trì trạng thái của website ơ chế định tuyến giúp duy trì trạng thái của website ế định tuyến giúp duy trì trạng thái của website ịnh tuyến giúp duy trì trạng thái của website ế định tuyến giúp duy trì trạng thái của website ạng thái của website ủa website 17 Hình 2:S đ use-case t ng quát ơ chế định tuyến giúp duy trì trạng thái của website ồ use-case tổng quát ổng quát 19 Hình 3: S đ use-case đăng nh p ơ chế định tuyến giúp duy trì trạng thái của website ồ use-case tổng quát ập 19 Hình 4:S đ use-case đăng xu t ơ chế định tuyến giúp duy trì trạng thái của website ồ use-case tổng quát ấp cơ chế định tuyến giúp duy trì trạng thái của website 20 Hình 5: S đ use-case đăng ký thành viên ơ chế định tuyến giúp duy trì trạng thái của website ồ use-case tổng quát 21 Hình 6: S đ use-case mua s n ph m ơ chế định tuyến giúp duy trì trạng thái của website ồ use-case tổng quát ản phẩm ẩm 23 Hình 7: S đ use-case thay đ i thông tin cá nhân ơ chế định tuyến giúp duy trì trạng thái của website ồ use-case tổng quát ổng quát 25 Hình 8: S đ use-case qu n lý gi hàng cá nhân ơ chế định tuyến giúp duy trì trạng thái của website ồ use-case tổng quát ản phẩm ỏ hàng cá nhân 26 Hình 9: S đ use-case tìm ki m ơ chế định tuyến giúp duy trì trạng thái của website ồ use-case tổng quát ế định tuyến giúp duy trì trạng thái của website 28 Hình 10: S đ use-case xem thông tin s n ph m ơ chế định tuyến giúp duy trì trạng thái của website ồ use-case tổng quát ản phẩm ẩm 29 Hình 11:Giao di n đăng nh p ện đăng nhập ập 30 Hình 12 : Giao di n nút trang đăng ký sau khi click Sign up ện đăng nhập 31 Hình 13:Giao di n trang ch ện đăng nhập ủa website 31 Hình 14:Giao di n thông tin ng ện đăng nhập ười dùng i dùng 32 Hình 15:Giao di n thông tin phòng ện đăng nhập 33 Hình 16: Giao di n trang tìm ki m ện đăng nhập ế định tuyến giúp duy trì trạng thái của website 33 Hình 17:Giao di n sau khi tìm ki m ện đăng nhập ế định tuyến giúp duy trì trạng thái của website 34 Hình 18:Giao di n thông tin chuy n đi ện đăng nhập ế định tuyến giúp duy trì trạng thái của website 34 Hình 19: Giao di n đ t phòng thành công ện đăng nhập ặt phòng thành công 35 Hình 20:Giao di n đ t phòng ện đăng nhập ặt phòng thành công 36

1

Trang 7

DANH MỤC VIẾT TẮT

ĐỀ CƯƠNG CHI TIẾT TÊN ĐỀ TÀI:

Nền tảng chia sẻ nhà với Nodejs

Tên đề tài tiếng Anh:

Building a Home Sharing Platform with Node.js

Cán bộ hướng dẫn: ThS Nguyễn Công Hoan

Thời gian thực hiện: Từ ngày 05/03/2023 đến tháng 26/06/2023

Sinh viên thực hiện:

Đặng Thái Tài

Nội dung đề tài:

1 Giới thiệu:

Trang 8

Javascript là một ngôn ngữ lập trình được sử dụng rộng rãi hiện nay, dễ đọc và được hỗ trợ ở mọi nơi Mà Expressjs lại hỗ trợ Javascript, do đó nếu bạn đã biết đến Javascript thì chắc chắn việc lập trình bằng Express.js là vô cùng đơn giản Ngay cả những người mới bắt đầu tham gia vào lĩnh vực phát triển web này cũng có thể sử dụng Expressjs

Javascript là ngôn ngữ lập trình dễ học với cả những người không có bất kỳ kiến thức gì về ngôn ngữ lập trình khác Chính vì tính phổ biến, dễ học và dễ sử dụng này màExpress.js cho phép các tài năng trẻ tham gia và đạt được nhiều thành công trong phát triển ứng dụng web

Thông qua đề tài này, nhóm sẽ xây dựng website bán hàng trực tuyến

Website cung cấp tảng trực tuyến kết nối người đang có nhu cầu thuê chỗ ở (khách) với những người chủ nhà có sẵn nhà, căn hộ hoặc phòng trống (đơn vị chủ sở hữu) Website cập nhật tất cả những điện thoại mới ra mắt phù hợp trong từng nhu cầu sử dụng, mẫu mã mới nhất nhằm đáp ứng nhu cầu của người mua

Hệ thống này sẽ có chức năng cơ bản như hiển thị và order, upload mặt

hàng mới, gợi ý nhu cầu người dùng, chức năng tìm kiếm theo dạng text, …

Về phía quản trị viên sẽ có những chức năng chính như: quản lý mặt hàng,

số lượng, thông tin đơn hàng, quản lý tài khoản người dùng, …

2 Mục tiêu:

-Kết nối người thuê và người cho thuê: Tạo ra một nền tảng kết nối giữa

người muốn thuê nhà và những người sẵn sàng cho thuê nhà của mình

-Cung cấp trải nghiệm người dùng tốt: Tạo ra một trang web dễ sử dụng và

hiệu quả, giúp người dùng dễ dàng tìm kiếm và đặt thuê các căn nhà theo

nhu cầu của họ

-Quản lý thông tin liên quan đến nhà cho thuê: Cung cấp một giao diện

quản lý cho người cho thuê để quản lý các thông tin về nhà, đặt giá thuê

và tương tác với người thuê

-Tạo niềm tin và đảm bảo an toàn: Đảm bảo tính bảo mật và an toàn trong

giao dịch cho cả người thuê và người cho thuê

-Tích hợp các tính năng phụ trợ: Bao gồm các tính năng như thanh toán

trực tuyến, đánh giá và nhận xét, bản đồ hiển thị vị trí, và các dịch vụ

khác như hỗ trợ khách hàng và hướng dẫn dành cho người sử dụng

3 Phạm vi:

Trang 9

o Đặt và quản lý đơn hàng: Người dùng có thể đặt các yêu cầu thuê nhà, xem

và quản lý lịch sử đặt hàng và thanh toán

o Đăng tin nhà cho thuê: Người cho thuê có thể đăng tin về căn nhà của mình bao gồm mô tả, hình ảnh, giá cả và các tiện nghi đi kèm

o Đánh giá và nhận xét: Người thuê có thể đánh giá và viết nhận xét về những lần thuê nhà trước đó

o Thanh toán trực tuyến: Tích hợp các cổng thanh toán trực tuyến để người dùng có thể thanh toán tiền thuê nhờ một hệ thống an toàn và tin cậy

o Gửi yêu cầu hỗ trợ: Người dùng có thể gửi yêu cầu hỗ trợ hoặc liên hệ với nhóm quản lý để giải quyết các vấn đề liên quan đến thuê nhà

o Quản lý thông tin cá nhân: Người dùng có thể quản lý thông tin cá nhân, thayđổi mật khẩu và cài đặt các tùy chọn cá nhân

4 Đối tượng:

- Người dùng khách

- Người dùng có tài khoản

- Quản trị viên (Admin)

Trang 10

Kế hoạch thực hiện:

Thời gian Nội dung

05/03/2023 – 16/04/2024 Tìm hiểu đề tài, đánh giá thị trường, xác định các chức năng

của hệ thống

17/04/2023 – 30/04/2023 Tìm hiểu, nghiên cứu công nghệ

01/05/2023 – 17/05/2023 Phân tích và thiết kế hệ thống website

18/05/2023 – 08/06/2023 Tìm hiểu quy trình thiết kế UX/UI và thiết kế giao diện cho

website

09/06/2023 – 05/07/2023 Cài đặt phần back-end, xử lý của hệ thống

06/07/2023 – 08/07/2023 Kiểm thử hệ thống và hoàn thiện báo cáo

Trang 11

Sự phổ biến của việc chia sẻ nhà ở có nhiều lợi ích, bao gồm tiết kiệm chi phí, tăng cơ hộikết nối xã hội và giảm tác động môi trường Chia sẻ nhà ở có thể giúp người thuê nhà tiết kiệmmột phần thu nhập cho các khoản thuê nhà, điện, nước và internet Ngoài ra, chia sẻ nhà ở cũngtạo cơ hội để gặp gỡ và kết nối với các người thuê nhà khác, làm tăng mối quan hệ xã hội và mởrộng mạng lưới của mỗi người.Với sự phát triển nhanh chóng của internet, chia sẻ nhà ở trênmạng xã hội đã trở thành một xu hướng phổ biến trong thời gian gần đây Nền tảng chia sẻ nhàcung cấp một cách tiện lợi để những người có nhà trống có thể kiếm thêm thu nhập bằng cách chothuê không gian của mình ngắn hạn cho những du khách hoặc người dùng khác.

Việc đăng ký và tìm kiếm thông qua mạng xã hội rất đơn giản và tiết kiệm thời gian.Người sử dụng cũng có thể xem thông tin chi tiết về những ngôi nhà và phòng trống được chia sẻ,bao gồm cả hình ảnh và đánh giá từ người đã sử dụng trước đó Điều này giúp người thuê nhà cócái nhìn tổng quan về không gian trước khi đặt chỗ

Website mua điện thọau trực tuyến với mục tiêu mang lại trải nghiệm tốt cho ngườidùng, chúng em xây dựng website cung cấp đầy đủ các chức năng cơ bản hiện có của mộtwebsite chia sẻ nhà ở Người dùng tiếp cận các mẫu mã thời trang đa dạng theo sở thích riêng củamình, …

Website Home-Sharing được xây dựng bằng Nodejs kết hợp với các thư viện hỗ trợ khác

1.3 Lý do chọn đề tài:

Với sự phát triển của Internet, nhu mua sắm trên không gian mạng tăng vượt trội bởi vì

sự đơn giản, dễ sử dụng, sự tiếp cận nhanh chóng đến kho đến nguồn sản phẩm khổng lồ của các website mua bán trực tuyến

Trước đây, chúng ta luôn bị gò bó khi mua sắm bởi vì thời gian hạn chế Một cửa hàng,hay một trung tâm thương mại như địa điểm đơn lẻ, có không gian trưng bày hạng chế, … chỉcho phép chúng ta chưng bày được vài mười mấy, hay vài chục bộ Thậm chí góc khuất còn bị bỏqua Muốn bổ sung các các sản phẩm mới đều phải mới đều phải đi tìm các nguồn khác từ cácnguồn khác, điều này gây mất nhiều thời gian, và chỉ những ai có nhiều thời gian rảnh rỗi hay có

vị chí đi lại thuận lợi Mỗi lần thay đổi địa điểm mua hàng cũng như mỗi lần tới một chân trờimới, vô cùng bất tiện Chi phí cho những chuyến đi cũng như thời

gian là vô cùng bất tiện

Tốc độ phát triển “chóng mặt” của Internet đã mang lại nhiều thay đổi lớn cho con người,trong đó bao gồm cả việc thay đổi cách thức và thói mua sắm trước đây của chúng ta vì đã xuấthiện các website mua bán trực tuyến

Chúng em quyết định chọn đề tài “Xây dựng website mua điện thoại trực tuyến” bởi vìtính ứng dụng cao, nhu cầu thực tế lớn và muốn vận dụng khả năng của mình ở nhiều loại đề tài

Trang 12

khác nhau để xây dựng các sản phẩm cho chúng và cái tên đề tài cũng khá thú vị vì chúng emchưa từng nghĩ tới sẽ thực hiện đề tài này

1.4 Khảo sát hiện trạng:

Hiện nay, thị trường đã có rất nhiều website mua sắm trực tuyến nổi tiếng được mọingười biết đến như thegioididong, SellPhoneS, hay những website cửa hàng lớn, … Với giaodiện bắt mắt, dễ sử dụng, cùng với số lượng sản phầm khổng lồ, chúng nhanh chóng trở thànhnhững website mua bán trực tuyến hàng đầu Các chức năng của những website này đều tập trungvào trải nghiệm tìm kiếm một chiếc điện thoại thoải mái ưng ý nhất cho người dùng

Chúng em cũng sẽ xây dựng một website mua điện thoại trực tuyến với những tính năng mua sắm cơ bản nhằm mang lại trải nghiệm dễ sử dụng và tiện dụng cho người dùng

1.5 Môi trường thiết kế:

- Visual Studio Code

1.6 Công cụ hỗ trợ:

- Trình duyệt Cốc Cốc, Chrome, FireFox

2.1 Tổng quan về HandleBarJs:

2.1.1 Giới thiệu về HandleBarJs:

Handlebars.js là một thư viện mô phỏng hệ thống mẫu (template system) tiên tiến Nócho phép bạn tạo ra các mẫu HTML động bằng cách tách biệt hoàn toàn logic và giao diện ngườidùng Handlebars.js cho phép bạn kết hợp dữ liệu từ nguồn khác nhau và sử dụng các thành phầnlogic như biểu thức, điều kiện, vòng lặp và các hàm trợ giúp để tạo ra đầu ra HTML cuối cùng

2.1.2 Khái niệm cơ bản trong HandleBarJs:

2.1.2.1 Biểu thức của Handbars.js:

Một biểu thức handlebars đơn giản được viết như thế này (trong đó, nội dụng của

Trang 13

content có thể là một biến hoặc một hàm trợ giúp với các thông số hoặc không có tham số)

Dưới đây là ví dụ về một thẻ script Handlebars:

<div> Name: {{ headerTitle }} </div>

2.1.2.2 Biểu thức của Handbars.js:

- Phần chính thứ 2 trong Handlebars templating là dữ liệu bạn muốn hiển thị trên trang.Bạnchuyển một dữ liệu đối tượng tới hàm handlebars, đối tượng dữ liệu được gọi là bối cảnh

Và đối tượng này có thể bao gồm tất cả các mảng, chuỗi, số, các đối tượng khác hoặc kếthợp tất cả đối tượng này Nếu đối tượng dữ liệu có một mảng các đối tượng, bạn có thể sửdụng hàm Handlebars mỗi vòng lặp để lặp lại mảng và bối cảnh hiện tại được đặt cho từngmục trong mảng Dưới đây là các ví dụ về việc thiết lập đối tượng dữ liệu và cách lặp nótrong handlebars:

Đối tượng dữ liệu với mảng đối tượng:

//đối tượng customers có một mảng các đối tượng mà chúng ta sẽ chuyển tới handlebars:var theData = {customers:[{firstName:”Michael”, lastName:”Alexander”, age:20},{firstName:”John”, lastName:”Allen”, age:29}]};

Bạn có thể sử dụng vòng lặp để lặp lại đối tượng của customers như thế này:

Trang 14

-Biên dịch template với hàm handlebars.

Sau đó, sử dụng hàm được biên dịch đó để gọi đối tượng dữ liệu được truyền cho nó (nó lấymột đối tượng dữ liệu làm tham số duy nhất của nó) Và điều này sẽ trả về một chuỗiHTML với các giá trị đối tượng được chèn vào HTML

2.1.3 Ưu điểm của Handlebarjs:

- Handlebars là một trong những công cụ tiên tiến nhất, giàu tính năng và phổ biến trong tất cả Javascript templating engines.- Tái sử dụng các Component

- Handlebars là templating engine không có logic, có nghĩa là có rất ít hoặc không có logic trong các template HTML mà bạn sử dụng

- Nó giữ cho các trang HTML của bạn đơn giản, sạch sẽ và sẽ tách biệt khỏi các tệp javascript dựa

trên logic và handlebars phục vụ tốt mục đích này2.2 NodeJS:

2.2.1 NodeJS là gì?

Nodejs là một nền tảng (Platform) phát triển độc lập được xây dựng trên V8 JavaScriptEngine – trình thông dịch thực thi mã JavaScript giúp chúng ta có thể xây dựng được các ứngdụng web như các trang video clip, các forum và đặc biệt là trang mạng xã hội phạm vi hẹp mộtcách nhanh chóng và dễ dàng mở rộng

NodeJS có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ Window cho tới Linux,

OS X nên đó cũng là một lợi thế NodeJS cung cấp các thư viện phong phú ở dạng JavascriptModule khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở mức thấp nhất

Node.js được xây dựng và phát triển từ năm 2009, bảo trợ bởi công ty Joyent, trụ sở tại

California, Hoa Kỳ

2.2.2 Cách NodeJS hoạt động:

Ý tưởng chính của Node js là sử dụng non-blocking, hướng sự vào ra dữ liệu thôngqua các tác vụ thời gian thực một cách nhanh chóng Bởi vì, Node js có khả năng mở rộngnhanh chóng, khả năng xử lý một số lượng lớn các kết nối đồng thời bằng thông lượng cao Nếu như các ứng dụng web truyền thống, các request tạo ra một luồng xử lý yêu cầumới và chiếm RAM của hệ thống thì việc tài nguyên của hệ thống sẽ được sử dụng khônghiệu quả Chính vì lẽ đó giải pháp mà Node js đưa ra là sử dụng luồng đơn (Single-Threaded), kết hợp với non-blocking I/O để thực thi các request, cho phép hỗ trợ hàng chụcngàn kết nối đồng thời

2.2.3 Ưu điểm của NodeJS:

- Tốc độ cực nhanh: Được xây dựng dựa trên engine JavaScript V8 của Google Chrome, do

đó các thư viện của nó có khả năng thực thi code chỉ rất nhanh - NPM: Với hơn 50,000

package khác nhau, các developer có thể dễ dàng lựa chọn bất kỳ tính năng nào để xây dựng

Trang 15

cho ứng dụng của mình

- Lập trình không đồng bộ: Mọi API của Node.JS đều có tính không đồng bộ (non blocking),

do đó một server dựa trên Node.JS không cần phải đợi API trả về dữ liệu - Không có

buffering: Node.JS giúp tiết kiệm thời gian xử lý file khi cần upload âm

thanh hoặc video vì các ứng dụng này không bao giờ buffer dữ liệu mà chỉ xuất dữ liệu theo từng phần (chunk)

- Đơn luồng: Node.JS sử dụng mô hình đơn luồng với vòng lặp sự kiện Do đó các ứng dụng

có thể xử lý số lượng request lớn hơn rất nhiều so với các server truyền thống như ApacheHTTP Server

- Khả năng mở rộng cao: Server NodeJS phản hồi theo hướng non-blocking, do đó nó có thể

mở rộng vô cùng dễ dàng, tạo ra các luồng giới hạn để xử lý request 2.3 ExpressJS:

2.3.1 ExpressJS là gì?

Express.js là một framework mã nguồn mở miễn phí cho Node.js Express.js được sử dụng trong thiết kế và xây dựng các ứng dụng web một cách đơn giản và nhanh chóng Express

hỗ rợ các phương thức HTTP và midleware tạo ra môt API vô cùng mạnh mẽ và dễ sử dụng

2.3.2 Tính năng của ExpressJS:

- Phát triển máy chủ nhanh chóng: Expressjs cung cấp nhiều tính năng dưới dạng các hàm để

dễ dàng sử dụng ở bất kỳ đâu trong chương trình Điều này đã loại bỏ nhu cầu viết mã từ

đó tiết kiệm được thời gian

- Phần mềm trung gian Middleware: Đây là phần mềm trung gian có quyền truy cập vào cơ

sở dữ liệu, yêu cầu của khách hàng và những phần mềm trung gian khác Phần mềmMiddleware này chịu trách nhiệm chính cho việc tổ chức có hệ thống các chức năng củaExpress.js

- Định tuyến - Routing: Express js cung cấp cơ chế định tuyến giúp duy trì trạng thái của website với sự trợ giúp của URL

- Tạo mẫu - Templating: Các công cụ tạo khuôn mẫu được Express.js cung cấp cho phép cácnhà xây dựng nội dung động trên các website bằng cách tạo dựng các mẫu HTML ở phíamáy chủ

- Gỡ lỗi - Debugging: Để phát triển thành công các ứng dụng web không thể thiết đi việc gỡlỗi Giờ đây với Expressjs việc gỡ lỗi đã trở nên dễ dàng hơn nhờ khả năng xác định chínhxác các phần ứng dụng web có lỗi

Trang 16

Hình 1 Express js cung cấp cơ chế định tuyến giúp duy trì trạng thái của website.

2.4 MongoDB:

2.4.1 MongoDB là gì:

- MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là CSDL thuộc NoSql và được hàng triệu người sử dụng

- MongoDB là một database hướng tài liệu (document), các dữ liệu được lưu trữ trong

document kiểu JSON thay vì dạng bảng như CSDL quan hệ nên truy vấn sẽ rất nhanh - Với CSDL quan hệ chúng ta có khái niệm bảng, các cơ sở dữ liệu quan hệ (như MySQL hay SQL Server ) sử dụng các bảng để lưu dữ liệu thì với MongoDB chúng ta sẽ dùng khái niệm là collection thay vì bảng

- So với RDBMS thì trong MongoDB collection ứng với table, còn document sẽ ứng với row , MongoDB sẽ dùng các document thay cho row trong RDBMS - Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ không cần tuân theo một cấu trúc nhất định

- Thông tin liên quan được lưu trữ cùng nhau để truy cập truy vấn nhanh thông qua ngôn ngữ truy vấn MongoDB

2.4.2 Một số câu lệnh cơ bản:

Tạo csdl use test;

Tạo bảng db.createCollection('students');

Tạo bản ghi db.students.insert({ name:huy, gender: 'male'});

Cập nhật db.students.update({ _id: 1 },{$set:{ name: huy update' }});

Xóa bản ghi db.students.remove({ _id: 1});

Tìm kiếm all db.students.find({});

Trang 17

Tìm kiếm db.students.find({ name: huy });

2.4.3 Ưu điểm của MongoDB:

- Do MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection

sẽ có các kích cỡ và các document khác nhau, linh hoạt trong việc lưu trữ dữ liệu, nên bạnmuốn gì thì cứ insert vào thoải mái

- Dữ liệu trong MongoDB không có sự ràng buộc lẫn nhau, không có join như trong RDBMSnên khi insert, xóa hay update nó không cần phải mất thời gian kiểm tra xem có thỏa mãncác ràng buộc dữ liệu như trong RDBMS

- MongoDB rất dễ mở rộng (Horizontal Scalability) Trong MongoDB có một khái niệmcluster là cụm các node chứa dữ liệu giao tiếp với nhau, khi muốn mở rộng hệ thống ta chỉcần thêm một node với vào cluster:

- Trường dữ liệu “_id” luôn được tự động đánh index (chỉ mục) để tốc độ truy vấn thông tin đạt hiệu suất cao nhất

- Khi có một truy vấn dữ liệu, bản ghi được cached lên bộ nhớ Ram, để phục vụ lượt truy vấn sau diễn ra nhanh hơn mà không cần phải đọc từ ổ cứng

- Hiệu năng cao: Tốc độ truy vấn (find, update, insert, delete) của MongoDB nhanh hơn hẳn

so với các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) Với một lượng dữ liệu đủ

lớn thì thử nghiệm cho thấy tốc độ insert của MongoDB có thể nhanh tới gấp 100 lần so với MySQL

Ngày đăng: 04/09/2023, 20:41

HÌNH ẢNH LIÊN QUAN

3.1. Sơ đồ Use-case: - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
3.1. Sơ đồ Use-case: (Trang 18)
Hình 3: Sơ đồ use-case đăng nhập. - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
i ̀nh 3: Sơ đồ use-case đăng nhập (Trang 18)
Bảng 3.1: Đặc tả đăng nhập: - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
Bảng 3.1 Đặc tả đăng nhập: (Trang 18)
Bảng 3.2: Đặc tả đăng xuất: - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
Bảng 3.2 Đặc tả đăng xuất: (Trang 19)
Hình 5: Sơ đồ use-case đăng ký thành viên. - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
i ̀nh 5: Sơ đồ use-case đăng ký thành viên (Trang 20)
Bảng 3.3: Đặc tả đăng ký thành viên: - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
Bảng 3.3 Đặc tả đăng ký thành viên: (Trang 20)
Hình 6: Sơ đồ use-case mua sản phẩm. - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
i ̀nh 6: Sơ đồ use-case mua sản phẩm (Trang 21)
Bảng 3.5: Đặc tả đề xuất điện thoại: - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
Bảng 3.5 Đặc tả đề xuất điện thoại: (Trang 22)
Bảng 3.7: Đặc tả thông tin cá nhân: - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
Bảng 3.7 Đặc tả thông tin cá nhân: (Trang 23)
Hình 8: Sơ đồ use-case quản lý giỏ hàng cá nhân. - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
i ̀nh 8: Sơ đồ use-case quản lý giỏ hàng cá nhân (Trang 24)
Bảng 3.8: Đặc tả thêm sản phẩm : - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
Bảng 3.8 Đặc tả thêm sản phẩm : (Trang 24)
Bảng 3.10: Đặc tả tìm kiếm: - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
Bảng 3.10 Đặc tả tìm kiếm: (Trang 25)
Hình 9: Sơ đồ use-case tìm kiếm. - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
i ̀nh 9: Sơ đồ use-case tìm kiếm (Trang 25)
Bảng 3.11: Đặc tả xem thông tin đơn hàng: - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
Bảng 3.11 Đặc tả xem thông tin đơn hàng: (Trang 26)
Hình 10: Sơ đồ use-case xem thông tin sản phẩm.. - Tìm hiểu về nodejs và xây dựng ứng website chia sẻ nhà ở
i ̀nh 10: Sơ đồ use-case xem thông tin sản phẩm (Trang 26)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w