Luận Văn Tốt Nghiệp: Tìm Hiểu Framework Node.js Và Angular Để Xây Dựng Website Tin Tức Minh Họa

Luận văn tốt nghiệp khám phá framework Node.js và Angular để xây dựng website tin tức minh họa, ứng dụng công nghệ hiện đại trong phát triển web.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

báo cáo thực tập tốt nghiệp

2020

74
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

1. CHƯƠNG 1: GIỚI THIỆU VỀ NODEJS

1.1. Giới thiệu về NodeJS

1.2. NodeJS là gì và tại sao nên học NodeJS

1.3. Ứng dụng của NodeJS

1.4. Hệ sinh thái của NodeJS

1.5. Cách thiết lập NodeJS

1.6. Tầm quan trọng của JavaScript

1.7. Phiên bản ECMAScript và NodeJS

1.8. Công Cụ hỗ trợ lập trình

2. CHƯƠNG 2: ỨNG DỤNG CỦA NODEJS

2.1. Chạy ứng dụng NodeJS với terminal

2.2. Viết code tạo server

2.3. Chạy server NodeJS

2.4. Node package manager(npm) và NodeJS module system

2.5. Xử lý yêu cầu API cho ứng dụng NodeJS

2.6. Xử lý file trong ứng dụng NodeJS

2.6.1. Mở một File trong Node

2.6.2. Lấy thông tin File trong Node

2.6.3. Ghi dữ liệu vào File trong Node

2.6.4. Đọc dữ liệu từ File trong Node

2.6.5. Đóng File trong Node

2.6.6. Truncate một File trong Node

2.6.7. Xóa File trong Node

2.6.8. Tạo thư mục trong Node

2.6.9. Đọc thư mục trong Node

2.6.10. Xóa thư mục trong Node

2.7. Khái niệm về Callback

2.8. Ví dụ Node JS Callback

3. CHƯƠNG 3: TEMPLATE ENGINE HANDLEBARS

3.1. Khi nào nên sử dụng handlebars.js và tại sao nên sử dụng nó

3.2. Handlebars hoạt động như thế nào

4. CHƯƠNG 4: EXPRESS.JS VÀ API

4.1. Tạo server HTTP đơn giản với NodeJS

4.2. Giới thiệu về Express

4.3. Render phản hồi HTML bằng chuỗi mẫu

4.4. Tạo các điểm cuối API restful

4.5. Sử dụng postman để kiểm tra API

5. CHƯƠNG 5: MONGODB

5.1. Giới thiệu về MongoDB và cách thiết lập MongoDB cục bộ

5.2. Thao tác dữ liệu MongoDB

PHẦN I: TÌM HIỂU VÀ CÀI ĐẶT MÔI TRƯỜNG

PHẦN II: XÂY DỰNG WEBSITE

6. CHƯƠNG 6: XÂY DỰNG WEBSITE DEMO

6.1. Giới thiệu web demo Website Tin Tức

6.2. Nền tảng và công cụ phát triển

6.3. Danh sách các Actor

6.4. Danh sách các Use-case

6.5. Kết quả thực nghiệm

6.6. Trang đăng ký thành viên

6.7. Trang đăng nhập

6.8. Trang liên hệ

6.9. Trang xem chi tiết bài viết

6.10. Trang xem thông tin thành viên đang bài

6.11. Trang quản trị của Admin

6.12. Trang quản lý bài viết của thành viên

6.13. Kết quả đạt được

6.14. Hướng phát triển

Tóm tắt

I. Giới thiệu về Node

Node.js là một nền tảng phát triển ứng dụng mạng được xây dựng trên JavaScript Runtime của Chrome. Nó cho phép xây dựng các ứng dụng mạng nhanh chóng và dễ dàng mở rộng. Node.js sử dụng kiến trúc hướng sự kiện và non-blocking I/O, giúp tối ưu hóa thông lượng và khả năng mở rộng của ứng dụng. Đây là công nghệ lý tưởng cho các ứng dụng real-timeSingle Page Application (SPA). Node.js cũng được sử dụng rộng rãi trong việc phát triển các ứng dụng CLI và tương tác với NoSQL databases như MongoDB.

1.1. Node.js là gì và tại sao nên học Node.js

Node.js là một mã nguồn mở, môi trường cho các máy chủ và ứng dụng mạng. Nó sử dụng Google V8 JavaScript engine để thực thi mã và cung cấp kiến trúc event-drivennon-blocking I/O. Node.js phù hợp với người mới bắt đầu lập trình, đặc biệt là những người đã có kiến thức cơ bản về JavaScript. Nó cho phép sử dụng một ngôn ngữ lập trình duy nhất (JavaScript) cho cả frontendbackend, giúp việc học và phát triển ứng dụng trở nên dễ dàng hơn.

1.2. Ứng dụng của Node.js

Node.js thường được sử dụng để phát triển các ứng dụng real-time như mạng xã hội, chat, và các ứng dụng SPA. Nó cũng được sử dụng rộng rãi trong việc tương tác với NoSQL databases như MongoDB và phát triển các ứng dụng CLI. Node.js là công nghệ lý tưởng cho các dự án cần tốc độ xử lý nhanh và khả năng mở rộng cao.

II. Xây dựng website tin tức với Node

Xây dựng website tin tức là một trong những ứng dụng thực tế của Node.jsAngular. Node.js được sử dụng để xử lý backend, trong khi Angular đảm nhận phần frontend. Sự kết hợp này tạo ra một hệ thống web mạnh mẽ, có khả năng xử lý real-time và quản lý nội dung hiệu quả. Website tin tức được xây dựng với Node.jsAngular có thể hỗ trợ các chức năng như đăng ký thành viên, đăng nhập, quản lý bài viết, và hiển thị thông tin chi tiết.

2.1. Kiến trúc website tin tức

Kiến trúc website tin tức được xây dựng dựa trên sự kết hợp giữa Node.jsAngular. Node.js đảm nhận phần backend, xử lý các yêu cầu từ frontend và tương tác với cơ sở dữ liệu. Angular được sử dụng để xây dựng giao diện người dùng, giúp tạo ra các trang web động và tương tác cao. Sự kết hợp này giúp website có tốc độ xử lý nhanh và khả năng mở rộng cao.

2.2. Chức năng của website tin tức

Website tin tức được xây dựng với Node.jsAngular hỗ trợ các chức năng cơ bản như đăng ký thành viên, đăng nhập, quản lý bài viết, và hiển thị thông tin chi tiết. Admin có quyền quản lý các thành viên và bài viết, trong khi người dùng có thể xem tin tức và đăng bài viết của mình. Website cũng hỗ trợ các chức năng real-time như thông báo và cập nhật tin tức mới nhất.

III. Phát triển ứng dụng web với Node

Phát triển ứng dụng web với Node.jsAngular là một quá trình kết hợp giữa backendfrontend. Node.js được sử dụng để xử lý các yêu cầu từ frontend, tương tác với cơ sở dữ liệu, và quản lý logic nghiệp vụ. Angular được sử dụng để xây dựng giao diện người dùng, giúp tạo ra các trang web động và tương tác cao. Sự kết hợp này giúp tạo ra các ứng dụng web mạnh mẽ, có khả năng xử lý real-time và quản lý nội dung hiệu quả.

3.1. Quy trình phát triển ứng dụng web

Quy trình phát triển ứng dụng web với Node.jsAngular bao gồm các bước như thiết kế kiến trúc, xây dựng backend với Node.js, phát triển frontend với Angular, và tích hợp hai phần lại với nhau. Node.js được sử dụng để xử lý các yêu cầu từ frontend, tương tác với cơ sở dữ liệu, và quản lý logic nghiệp vụ. Angular được sử dụng để xây dựng giao diện người dùng, giúp tạo ra các trang web động và tương tác cao.

3.2. Lợi ích của việc sử dụng Node.js và Angular

Việc sử dụng Node.jsAngular trong phát triển ứng dụng web mang lại nhiều lợi ích, bao gồm tốc độ xử lý nhanh, khả năng mở rộng cao, và sự tương thích giữa backendfrontend. Node.js giúp xử lý các yêu cầu từ frontend một cách hiệu quả, trong khi Angular giúp tạo ra các trang web động và tương tác cao. Sự kết hợp này giúp tạo ra các ứng dụng web mạnh mẽ, có khả năng xử lý real-time và quản lý nội dung hiệu quả.

01/03/2025
Luận văn tốt nghiệp tìm hiểu framework node js và angular dùng xây dựng website tin tức minh họa

Trích đoạn nội dung tài liệu

CHƯƠNG 1: GIỚI THIỆU VỀ NODEJS 1.1 Giới thiệu về NodeJS.1 NodeJS là gì và tại sao nên học NodeJS.js là một mã nguồn mở, một môi trường cho các máy chủ và ứng dụng mạng.js sử dụng Google V8 JavaScript engine để thực thi mã, và một tỷ lệ lớn các mô-đun cơ bản được viết bằng JavaScript. Các ứng dụng node.js thì được viết bằng JavaScript.js chứa một thư viện built-in cho phép các ứng dụng hoạt động như một Webserver mà không cần phần mềm như Nginx, Apache HTTP Server hoặc IIS.js cung cấp kiến trúc hướng sự kiện (event-driven) và non-blocking I/O API, tối ưu hóa thông lượng của ứng dụng và có khả năng mở rộng cao Mọi hàm trong Node.js là không đồng bộ (asynchronous). Do đó, các tác vụ đều được xử lý và thực thi ở chế độ nền (background processing) Còn đối với những bạn sinh viên (như mình) thì mình nghĩ một số lí do sau đây sẽ làm bạn không còn phân vân nên hay không nên học nữa: - Node.js là phần nâng cao hơn của javascript. Cho nên rất phù hợp với người mới bắt đầu với lập trình, đã học qua frontend (html, css, js).

Các bạn cần có kiến thức cơ bản về javascript. - Có thể sử dụng 1 ngôn ngữ lập trình (javascript) vừa để xử lý giao diện (frontend) vừa xử lý logic (back-end), nên có 1 sự kết nối trong việc học, việc đọc và sửa code (chung cú pháp) 12 - Node.js cực kì dễ cài đặt và sử dụng. Bạn không cần thêm 1 phần mềm nào chạy server khác (như Glassfish/tomcat cho JavaWeb, Xampp cho php). Gần như tất cả mọi thứ chỉ trong 1 lần setup.js miễn phí và chạy trên nhiều platform (windows, linux, Mac OS, .js có 1 cộng đồng rất nhiều người học với số lượng built-in module (các package hỗ trợ) nhiều, cài đặt bằng npm.js để viết những website thực tế, theo mình trực quan và hứng thú hơn rất nhiều so với việc viết code console trên lớp.

Chưa kể lại với thời gian viết cho ra sản phẩm nhanh.2 Ứng dụng của NodeJS.js thường được sử dụng để: - Phát triển ứng dụng Real-time: mạng xã hội, chat, … - Ứng dụng Single Page Application (SPA): bởi những ứng dụng này thường request rất nhiều đến server thông qua AJAX - Ứng dụng truy vấn tới NoSQL database như MongoDB, CouchDB, … - Ứng dụng CLI: đây là các công cụ sử dụng command-line.3 Hệ sinh thái của NodeJS. Hệ sinh thái module npm mở (open source), ai cũng có thể truy cập và tải về miễn phí, cũng như tạo ra và upload module của riêng họ. Một số module npm phổ biến: ● Express: expressjs, một framework phát triển web dựa trên Sinatra, nền tảng chuẩn cho rất nhiều ứng dụng Node.js bây giờ. ● Connect: Connect là một framework server HTTP mở rộng, cung cấp một bộ các plugins “hiệu năng cao” như middleware, server, đồng thời cũng là nền tảng cho Express.io và sockjs: thành phần server-side của hai websocket thông dụng nhất hiện nay.

● Jade: một trong những template engine phổ biến (chuẩn viết html), dựa trên HTML, nền tảng của Expressjs. ● Mongo và mongojs: gói MongoDB cung cấp những APIs cho hệ cơ sở dữ liệu đối tượng MongoDB trong Node.js ● Redis: thư viện người dùng. ● CoffeeScript: trình biên dịch CoffeeScript cho phép những nhà phát triển viết nên chương trình Node.js bằng Coffee (uống cà phê là viết được Node.js <3) ● Underscore (lodash, lazy): thư viện cung cấp rất nhiều tiện ích, được sử dụng phổ biến nhất trong Javascript, được gói gọn trong Node.js, với cách thực thi khác biệt, hứa hẹn sẽ mang đến hiệu năng tốt hơn. ● Forever: rõ ràng đây là tiện ích thông dụng nhất, giúp cho mã Node chạy một cách liên tục.

Danh sách trên đây chỉ mang tính giới thiệu. Thực tế còn rất nhiều các module mạnh mẽ khác nữa. Cách thiết lập NodeJS. - Download Nodejs Download phiên bản mới nhất của Node.js từ trang Node.

Tại thời điểm bài hướng dẫn này, các phiên bản mới nhất tương ứng với các hệ điều hành như sau: OS Archive name Windows node-v0.msi Linux node-v0.gz Mac node-v0.gz SunOS node-v0.gz - Cài đặt Node.js trên UNIX/Linux/Mac OS X, và SunOS 14 Dựa vào các kiến trúc của các hệ điều hành, tải và giải nén node-v0.gz trong thư mục /tm và sau cùng là giải nén vào thư mục /usr/local/nodejs. Ví dụ: $ sudo apt-get install nodejs Thêm /usr/local/nodejs/bin vào biến môi trường PATH OS Kết quả Linux export PATH=/usr/local/nodejs/bin Mac export PATH=$PATH:/usr/local/nodejs/bin FreeBSD export PATH=$PATH:/usr/local/nodejs/bin - Cài đặt Node.js trên Windows Sử dụng file MSI và theo các hướng dẫn hiện lên khi cài đặt Node. Mặc định, bộ cài đặt Node.js được lưu trữ tại C:\Program Files\nodejs. - Xác nhận quá trình cài đặt Node.js có thành công không Tạo một file js với tên main.js trên máy tính (Windows hoặc Linux) với dòng code dưới đây: /* Hello, World! Vi du kiem tra cai dat node.log("Hello, World!") Bây giờ thực hiện main.js sử dụng trình biên dịch Node.js để xem các kết quả: $ node main.js Nếu mọi thứ thành công, sau khi biên dịch sẽ cho kết quả: Hello, World! 1.

Tầm quan trọng của JavaScript 1. Giới thiệu lại các khái niệm quan trọng của JS. Phạm vi trong ngôn ngữ lập trình thể hiện mức độ truy cập và vòng đời của các biến hay tham số. Scope có thể được xác định trên globally hoặc locally.

Scope là một trong những khái niệm quan trọng đối với developer vì nó sẽ giúp bạn tránh khỏi gặp bug khi đặt tên biến trùng và quản lý bộ nhớ, giá trị của biến hoặc tham số tại mỗi thời điểm hay ngữ cảnh(context) mà nó đang tham chiếu đến => viết code nhanh hơn dễ 15 bảo trì hơn. Vòng đời của một biến trong javascript: Vòng đời của một biến sẽ được bắt đầu khi nó được khai báo Biến local sẽ bị xóa đi khi kết thúc một function Biến global sẽ bị xóa đi khi đóng browser(hoặc tab), lưu ý là biến sẽ duy trì trong một trình duyệt web, các biến toàn cục sẽ bị xóa khi bạn đóng cửa sổ trình duyệt (hoặc tab), nhưng vẫn có sẵn cho các trang mới được tải vào cùng một cửa sổ. Trong javascript ta có thể phân loại scope ra thành 3 loại chính như sau: global scope, local scope. Global scope Biến được khai báo ở ngoài function => biến toàn cục Các biến toàn cục có thể được truy cập bởi tất cả các đoạn script trong webpage Local scope Biến local chỉ có thể được truy cập trong các function mà nó được khai báo Khi làm việc với các function asynchronous do đó chương trình sẽ nhảy bước, do đó để lấy kết quả của hàm ajax, ta phải truyền cho nó 1 callback.

Sau khi hàm AJAX lấy được kết quả, nó sẽ gọi hàm callback với kết quả thu được => không có quy trình, khó khăn trong việc kiểm soát, thiếu tính chặt chẽ. Giả sử bài toán đặt ra ta cần gọi 2 API để lấy dữ liệu, và giao diện chỉ được sinh ra khi có đủ kết quả từ 2 API. Tính cần thiết của ES6-7. - Có 10 tính cần thiết cần phải nhắc đến: + Default Parameters in ES6 + Template Literals in ES6 + Multi-line String in ES6 + Destructuring Assignment in ES6 + Enhanced Object Literals in ES6 + Arrow Function in ES6 + Promises in ES6 + Block-Scoped Constructs Let and Const + Classes in ES6 + Modules in ES6 16 1.

Phiên bản ECMAScript và NodeJS - Thời điểm ECMAScript mới được phát hành, bản thân Netscape cũng tiếp tục hiện thực JavaScript và có phiên bản riêng. Cụ thể, phiên bản ES đầu tiên tương đương với JavaScript 1. ECMAScript 2 chỉ là phiên bản hiệu chỉnh để tương thích với tiêu chuẩn ISO/IEC 16262. ECMAScript 3 là phiên bản có một số cải tiến đáng lưu ý như RegularExpression, try/catch… và tương đương với JavaScript 1.5 của Netscape Navigator 6.5 của Internet Explorer 5.

ECMAScript 4 với đặc tả nổi bật là class, khai báo kiểu, generator, iterator, và E4X (ECMAScript for XML) đã có sự không đồng thuận giữa hai tổ chức có thị phần trình duyệt lớn nhất lúc bấy giờ là Microsoft và Netscape/Mozilla, dẫn đến việc phiên bản này bị loại bỏ. Tuy nhiên vẫn có một hiện thực khá nổi tiếng sử dụng đặc tả này, đó chính là ActionScript 3 dành cho Flash. ECMAScript 5 là phiên bản thay thế ES4, là sự thỏa hiệp của Brendan Eich (lúc này đã là CTO của Mozilla, tổ chức phi lợi nhuận thành lập bởi Netscape và chịu trách nhiệm phát triển trình duyệt nguồn mở Firefox) với các bên phản đối ES4 (trong đó có Yahoo, Microsoft và Google). Những cải tiến trong ES5 không nhiều và vốn ban đầu được Microsoft đưa ra dưới phiên bản đề nghị là ES3.

Một số thay đổi đáng chú ý trong ES5: strict mode, JSON, các phương thức của Object và Array, getter & setter… ES5 được chính thức phát hành vào tháng 12/2009, tương đương với JavaScript 1.5 (Firefox 4, và là phiên bản JavaScript độc lập cuối cùng) và chỉ được hỗ trợ hoàn toàn kể từ Internet Explorer 9. Giai đoạn này cũng đánh dấu sự xuất hiện của Node.js, nền tảng server side thành công nhất của JavaScript. Phiên bản tiếp theo sau ECMAScript 5 mất một khoảng thời gian dài để hoàn tất. Lúc này, Firefox đã chiếm được thị phần đáng kể, IE vẫn chiếm đa số nhưng đang mất dần thị phần và Chrome là anh lính mới nhưng phát triển rất nhanh.

JavaScript nhận được sự quan tâm lớn từ xu hướng phát triển web app nặng về phía Front End với cách tiếp cận AJAX. Tiếp theo sau đó là sự nở rộ của các JavaScript frameworks. Các công ty nắm thị phần trình duyệt đa số đã đạt được sự đồng thuận cao nên dự án cho phiên bản ES tiếp theo được đặt tên là ECMAScript Harmony. ECMAScript 17 Harmony cũng đánh dấu quy trình làm việc mới của tiểu ban ECMA TC39 (Technical Committee 39) với các đặc tả mới được tiến hành hoàn thiện theo module và chuẩn hóa qua 5 bước (tương tự quy trình của W3C cho các module của HTML & CSS).

ECMAScript 6 (ECMAScript 2015), Các đặc tả của ES6 được khóa sổ vào tháng 6 2015 và phiên bản ES được đổi từ số thứ tự thành năm phát hành, ECMAScript 2015. Đây là phiên bản có rất nhiều cải tiến về cú pháp, khiến cho JavaScript gần như lột xác hoàn toàn. Một số đặc tả mới đáng chú ý: - class và public method - block scope và từ khóa let, const - arrow function - template string - generator và iterator - Promise - destructuring assignment - module (còn gọi là ECMAScript module / esm) 1. Công Cụ hỗ trợ lập trình.

Khi học lập trình Nodejs thì các bạn có thể sử dụng IDE hoặc Editor. Nếu sử dụng IDE thì bạn có thể sử dụng IDE tốt nhất cho Node chính là Webstorm của JetBrains, tuy nhiên công cụ này là trả phí và giá khá là cao nên mình không khuyến khích sử dụng nếu bạn là sinh viên hoặc là người mới nghiên cứu về Node JS.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ