Trong các bài trước, mình có viết một chút về các khái niệm, thành phần kiến trúc của node. Tiếp tục với series về nodejs mình xin viết thêm một chút về tầm quan trong của nodejs ở phía server-side, rất mong nhận được các góp ý.nodejs mình xin viết thêm một chút về tầm quan trong của nodejs ở phía server-side, rất mong nhận được các góp ý. OK! Node.js là một trong những công nghệ phía máy chủ mạnh mẽ, có khả năng mở rộng rấtcao. Chúng ta có thể viết một ứng dụng chỉ bằng một ngôn ngữ JAVASCRIPT .Chúng ta có thể sử dụng bất kỳ một frontend frameworks như Angular, React, Ember, Vue hoặc thậm chí jQuery đơn thuần và phía backend, ta chỉ cần sử dụng một nền tảng của javascript đó là “Node.js “.Node.js là một trong những công nghệ phía máy chủ mạnh mẽ, có khả năng mở rộng rấtcao. Chúng ta có thể viết một ứng dụng chỉ bằng một ngôn ngữ JAVASCRIPT .Chúng ta có thể sử dụng bất kỳ một frontend frameworks như Angular, React, Ember, Vue hoặc thậm chí jQuery đơn thuần và phía backend, ta chỉ cần sử dụng một nền tảng của javascript đó là “Node.js “. Web DevelopmentTrong hình trên là một ví dụ về công nghệ Fullstack Web Development. Phía Frontend, chúng ta có thể sử dụng bất kỳ client-side javascript framework mới nhất nào đó, và mình đã đề cập một số framework mới và khá ưa chuộng ngày nay. Phía back-end hay server-side, chúng ta có thể sử dụng Node.js .Node.js . Mobile DevelopmentChúng ta cũng có thể sử dụng Node.js trong phát triển thiết bị di động. Desktop Application DevelopmentChúng ta cũng có thể hoàn toàn phát triển các ứng dụng máy tính để bàn bằng Node.js bằng cách sử dụng khung công tác của nó có tên là Electron. Slack, Github, Atom và nhiều phần mềm khác dành cho máy tính để bàn cũng được xây dựng dựa trên Electron ., Github, Atom và nhiều phần mềm khác dành cho máy tính để bàn cũng được xây dựng dựa trên Electron . Core của Node.jsNode.js được được xây dựng và chạy trên V8 engine. V8 engine dựa trên C++. Vì vậy, cuối cùng, trái tim của Node.js chính là C++ . được được xây dựng và chạy trên V8 engine. V8 engine dựa trên C++. Vì vậy, cuối cùng, trái tim của Node.js chính là C++ . Chính vì vậy nên Nodejs có khả năng mở rộng cao. Đối với các hệ thống tệp thực hiện các thao tác I/O, Nodejs sử dụng non-blocking và single threaded. Thời gian gửi yêu cầu và nhận phản hồi, giao tiếp qua internet rất nhanh.I/O, Nodejs sử dụng non-blocking và single threaded. Thời gian gửi yêu cầu và nhận phản hồi, giao tiếp qua internet rất nhanh. Xây dựng nhanh một ứng dụng web đơn giản sử dụng Nodejs và Express:Express là khung ứng dụng web cho Node.js cung cấp một bộ tính năng mạnh mẽ để phát triển các ứng dụng web nhanh chóng và phong phú. là khung ứng dụng web cho Node.js cung cấp một bộ tính năng mạnh mẽ để phát triển các ứng dụng web nhanh chóng và phong phú. Để bắt đầu ta tạo một thư mục dự án và đi đến thư mục đó chạy lệnh sau bằng terminal:
Sau khi hoàn tất việc tải dữ liệu, trong thư mục gốc của bạn sẽ xuất hiện một file package.json. Tệp này chứa các cấu hình cho các phụ thuộc của project, nó sẽ tự động cập nhật khi tải các gói mới từ Node Package Manager.package.json. Tệp này chứa các cấu hình cho các phụ thuộc của project, nó sẽ tự động cập nhật khi tải các gói mới từ Node Package Manager. Cài đặt khung expressĐể tải gói Express từ Node Package Manager ta chạy lênh:
Sau khi hoàn tất ta tao một file app.js trong thư mục gốc, file này chính là main server file, nó sẽ khởi động máy chủ node và phục vụ một số tệp tĩnh. Thêm đoạn mã sau vào trong tệp để tạo một server-side:app.js trong thư mục gốc, file này chính là main server file, nó sẽ khởi động máy chủ node và phục vụ một số tệp tĩnh. Thêm đoạn mã sau vào trong tệp để tạo một server-side:
Bây giờ mở terminal và gõ lệnh 5 ta sẽ nhận được dòng ‘hello world’. 5 ta sẽ nhận được
dòng ‘hello world’.Nếu chúng ta không muốn khởi động lại máy chủ theo cách thủ công thì chúng ta có thể sử dụng một gói được gọi đó là 6. Nó sẽ tải lại máy chủ mỗi khi chúng ta có sự thay đổi về tệp. 6. Nó sẽ tải lại máy chủ mỗi khi chúng ta có sự thay đổi về tệp.
Thêm dòng sau vào đối tượng scripts trong file **package.json **.
Khi bạn nhập npm start trên terminal, nó sẽ tự khởi động tải lại máy chủ khi chúng ta thay đổi các tập tin. Nếu chúng ta muốn thiết lập định tuyến trong express app, ta sẽ làm như sau:express app, ta sẽ làm như sau:
Khởi động lại máy chủ . truy cập url http://localhost:3000 bằng trình duyệt ta sẽ nhận được dòng Hello Express trên trình duyệt. Có vẻ ngon nghẻ, tiếp tục ta tạo một thư mục public trong thư mục gốc để chứa các thư viện như bootstrap, jquery hay các file CSS và Javascript… Ngoài ra, Ta cần tạo thêm thư mục views trong thư mục gốc để chưa các tệp HTML.public trong thư mục gốc để chứa các thư viện như bootstrap, jquery hay các file CSS và Javascript… Ngoài ra, Ta cần tạo thêm thư mục views trong thư mục gốc để chưa các tệp HTML. Để sử dụngcác tệp tĩnh từ máy chủ ta thêm vào tệp app.js đoạn mã:app.js đoạn mã:
Truy cập http://localhost:3000/css/bootstrap.css nếu mã CSS hiển thị trên trình duyệt, thì chúng ta đã thành công. Toàn bộ tệp app.js sẽ trông như thế này:app.js sẽ trông như thế này:
Ở đây chúng ta sẽ sử dụng “ejs” templating engine vì nó hoàn toàn là html thuần khá quen thuộc và đơn giản.“ejs” templating engine vì nó hoàn toàn là html thuần khá quen thuộc và đơn giản.
Và cần bổ sung vào tệp app.js để có thể sử dụng view engine.view engine.
Tạo một tệp view index.ejs trong thư mục views:index.ejs trong thư mục views: 0Thiết lập các định tuyến cho ứng dụng chúng ta cần sử dụng module bộ định tuyến được cung cấp bởi Express: 1Bây giờ chúng tôi có thể tạo nhiều định tuyến mong muốn. 2Vì vậy, khi truy cập URL http://localhost:3000/items, express sẽ hiển thị chế độ xem file **items.ejs **. Ta có thể tách riêng các bộ định tuyến ra một file riêng biệt để dễ dàng quản lý bằng cách tạo file itemRoutes.js với đường dẫn file từ thư mục root là: src >> routes >> itemRoutes.js và thêm đoạn mã sau:itemRoutes.js với đường dẫn file từ thư mục root là: src >> routes >> itemRoutes.js và thêm đoạn mã sau: 3Trong app.js cần gọi đến file định tuyến đó:app.js cần gọi đến file định tuyến đó: 4 Vậy đó, thật đợn giản và nhanh chóng. Và mình tạm dừng ở đây. Tiếp nối sẽ là việc CRUD sử dụng CSDL noSQL MongoDB.CRUD sử dụng CSDL noSQL MongoDB. TTB 2019. |