NodeJS là gì? Đặc tính và các framework NodeJS phổ biến - NodeJS căn bản
Trong bài này mình sẽ giới thiệu một chút về NodeJS là gì, sau đó đưa ra những đặc điểm cơ bản của NodeJS, đó là lý do tại sao nó trở thành công nghệ HOT nhất hiện nay 2021 Dạo này lướt Facebook toàn thấy chủ đề về nên học gì vào năm 2021?, Các câu trả lời chủ yếu là NodeJS, AngularJS, Phalcon ...
Trong bài này mình sẽ giới thiệu một chút về NodeJS là gì, sau đó đưa ra những đặc điểm cơ bản của NodeJS, đó là lý do tại sao nó trở thành công nghệ HOT nhất hiện nay 2021
Dạo này lướt Facebook toàn thấy chủ đề về nên học gì vào năm 2021?, Các câu trả lời chủ yếu là NodeJS, AngularJS, Phalcon FW, ... Đó đều là những framework rất hot đấy. Nhưng nói vè NodeJS thì có vẻ hấp dẫn nhất.
Và trong bài đầu tiên về chủ đề NodeJS này mình sẽ giới thiệu khái niệm NodeJS là gì và những thành phần cần thiết trong NodeJS.
1. NodeJS là gì?
NodeJS là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine, nó được sử dụng để xây dựng các ứng dụ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. NodeJS là một mã nguồn mở được sử dụng rộng bởi hàng ngàn lập trình viên trên toàn thế giới.
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 Javascript Module 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.
Khi nói đến NodeJS thì phải nghĩ tới vấn đề Realtime. Realtime ở đây chính là xử lý giao tiếp từ client tới máy chủ theo thời gian thực. Giống như khi bạn lướt Facebook thì mỗi khi bạn comment hay like một topic nào đó thì ngay lập tức chủ topic và những người đã comment trên đó sẽ nhận được thông báo là bạn đã comment.
Nếu ban nghĩ Facebook đang sử dụng Ajax thì bạn đã sai rồi nhé, nếu họ sử dụng Ajax thì Server họ sẽ chết ngay lập tức bởi các request gửi lên với số lượng tính theo tỉ :3. Còn nếu bạn hỏi Facebook có phải sử dụng NodeJS không thì mình xin trả lời là mình không biết nhé :D Vì mình không phải là nhà phát triển Facebook.
Hoặc là ứng dụng Google Analytics, nếu bạn muốn làm một trang như vậy thì sẽ đụng tới Realtime, mà đụng tới Realtime thì NodeJS là một sự chọn lựa khá tốt. Đấy là mình thảo luận còn Google nó sử dụng công nghệ gì thì mình cũng chả biết :D.
Ok bây giờ ta sẽ tìm hiểu sơ lược qua một số tính năng của NodeJS, thực sự mà nói thì các tính năng này lúc mới học đọc vào cũng chả hiểu là cái gì cả nhưng một khi đã thấm rồi thì ắt sẽ tự hiểu ra, vì vậy phần dưới đây bạn có thể để dành đọc sau khi sử dụng được căn bản NodeJS.
2. Các đặc tính của NodeJS
Qua phần tìm hiểu NodeJS là gì mình có giới thiệu một đặc tính rất quan trọng đó là Realtime, tuy nhiên vẫn còn khá nhiều đặc tính mà bạn cần phải biết trước khi học NodeJS.
- Không đồng bộ: Tất cả các API của NodeJS đều không đồng bộ (none-blocking), nó chủ yếu dựa trên nền của NodeJS Server và chờ đợi Server trả dữ liệu về. Việc di chuyển máy chủ đến các API tiếp theo sau khi gọi và cơ chế thông báo các sự kiện của Node.js giúp máy chủ để có được một phản ứng từ các cuộc gọi API trước (Realtime).
- Chạy rất nhanh: NodeJ được xây dựng dựa vào nền tảng V8 Javascript Engine nên việc thực thi chương trình rất nhanh.
- Đơn luồng nhưng khả năng mở rộng cao: Node.js sử dụng một mô hình luồng duy nhất với sự kiện lặp. cơ chế tổ chức sự kiện giúp các máy chủ để đáp ứng một cách không ngăn chặn và làm cho máy chủ cao khả năng mở rộng như trái ngược với các máy chủ truyền thống mà tạo đề hạn chế để xử lý yêu cầu. Node.js sử dụng một chương trình đơn luồng và các chương trình tương tự có thể cung cấp dịch vụ cho một số lượng lớn hơn nhiều so với yêu cầu máy chủ truyền thống như Apache HTTP Server.
- Không đệm: NodeJS không đệm bất kì một dữ liệu nào và các ứng dụng này chủ yếu là đầu ra dữ liệu.
- Có giấy phép: NodeJS đã được cấp giấy phép bởi MIT License.
Sau đây là sơ đồ về các thành phần quan trọng trong NodeJS mà trong series này chúng ta sẽ tìm hiểu dần (hình sưu tầm từ tutorialspoint).
3. Hai NodeJS framework sử dụng phổ biến
Cho mình tạm gọi NodeJS là một công nghệ mới, hay một ngôn ngữ mới nhé mọi người. Sau đây mình sẽ liệt kê danh sách tất cả những framework của NodeJS đang được sư dụng phổ biến nhất tại Việt Nam.
Express
ExpressJS là một trong những framework phổ biến dùng để xây dựng API và Website phổ biến nhất của NodeJS. Nó được sử dụng rộng rãi đến mức hầu như mọi dự án Web nào đều bắt đầu bằng việc tích hợp Express. Có rất nhiều lý do để chọn ExpressJS:
- Có nhiều tính năng hỗ trợ tất cả những gì bạn cần trong việc xây dựng Web và API
- Quản lý các route dễ dàng
- Cung cấp một nền tảng phát triển cho các API
- Hỗ trợ nhiều thư viện và plugin
- Bảo mật và an toàn hơn so với việc code thuần
- Hỗ trợ cộng đồng tuyệt vời
SocketIO
SocketIO là một web-socket framework có sẵn cho nhiều ngôn ngữ lập trình.
Trong NodeJS, SocketIO cho phép xây dựng một các ứng dụng realtime như chatbot, tickers, dashboard APIs, và nhiều ứng dụng khác. SocketIO có lợi ích hơn so với NodeJS thông thường.
- Hỗ trợ route URL tùy chỉnh cho web socket
- Tích hợp dễ dàng hơn với Express JS
- Hỗ trợ clustering với Redis
Ngoài ra còn một số framework khác như:
- BodyParser
- ails.JS
- Hapi.JS
- Total.JS
- LoopBack
- Meteor
- Restify
- Koa
4. Nên học NodeJS ở đâu
Để học tốt NodeJS thì theo mình tốt nhất bạn nên tìm một khóa học online chất lượng, như vậy bạn sẽ không mất quá nhiều thời gian vào việc tìm hiểu một công nghệ mới.
Youtube cũng là một kênh học NodeJS tuyệt vời đấy nhé, ở đó có rất nhiều người training online tiếng Anh lẫn tiếng Việt. Bạn có thể lên đó và tìm với từ khóa "nodejs căn bản".
Hiện nay có rất nhiều khóa học online chất lượng, bạn có thể tham khảo tại đây.
5. Lời kết
Qua bài tìm hiểu NodeJS là gì này bạn thấy rõ ràng việc học NodeJS vào năm 2016 này là một quyết định sáng suốt phải không các bạn :D Cá nhân mình cũng đang tìm hiểu thôi nên trong quá trình viết bài nêu có gì không đúng thì mong các bạn góp ý tích cực và bỏ qua nhé. Hy vọng hết năm 2016 này Zaidap.com sẽ có một chuyên đề học NodeJS hoàn chỉnh cho các bạn tham khảo.