Anh ui, NodeJS là cái gì vậy anh?
Định nghĩa của NodeJS trên trang chủ nè:
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
Đù, Một cái đinh nghĩa thui mà cả tá thuật ngữ chuyên ngành, em hem hiểu gì hết trơn
Chắc hẳng chú thường nghe nói Javascript chạy trên trình duyệt web ( browser ) đúng không?
Thì trình duyệt web nó cũng là một phèn mìm ( phần mềm ) thui, có gì đâu.
Giống như Microsoft Word để gõ văn bản vậy đó. Nhưng mà trình duyệt nào cũng vậy, để chạy được thì cần phải có 3 chương trình con trong nó. Nếu coi trình duyệt như một ông giám đốc thì cần có 3 thằng nhân viên:
Tại sao cần phải dịch?
Máy tính nó như người nguyên thủy sống giữa thời hiện đại vậy đó, nó chỉ hiểu ngôn ngữ cực thấp là
Binary code ( mã máy ) là 0 với 1 thôi. Chú có muốn viết code giống này không? Ăn rồi ngồi bấm lỗ 0 với 1 thôi nhé:
Chu choa mẹ ơi, nhìn cool vl anh à, em cũng muốn học binary code quá
Ừa, chú có thể vào đây học viết binary code để tặng gấu nè
Em làm gì có gấu, mà em hiểu sơ sơ rồi, tức là trình duyệt nó muốn chạy một trang web thì trình duyệt đó cần 3 phần mềm dịch bên trong nó để dịch code sang mã máy đúng không?
Chuẩn
À, hèn gì học lập trình web là phải học HTML, CSS với Javascript. Ủa vậy thì Chrome, Firefox, IE nó khác nhau thế nào?
Thì nó xài Javasript Engine khác nhau.
Mozilla
Spidermonkey
Chrome
V8
Safari
JavaScriptCore ( hay gọi là Nitro )
IE and Edge
Chakra
Đù gì tùm lum vậy, em chỉ muốn biết NodeJS là gì thôi mà?
Thì NodeJS xài V8 engine đó, hem thấy hả?
Nhưng trình duyệt mới cần Javascript Engine chứ, NodeJS cần mẹ gì?
Thì NodeJS dùng để viết web server đúng không, mà Javascript chạy được khi có Javascript Engine thôi, nên mới cần NodeJS.
Bây giờ máy tính của chú muốn lên Facebook được đúng không? Thì phải gõ vô trình duyệt web là
facebook.com. Ok chưa? Thực ra facebook.com là tên miền thôi, nó sẻ trỏ qua địa chỉ IP này 31.13.95.36
Khoan, sao anh biết biết địa chỉ IP của Facebook gê vậy?
Dễ ẹt, vô Terminal ( máy Mac ) hoặc Command Prompt ( Windows) gõ:
ping facebook.com
Nó sẽ ra địa chỉ thôi:
Sẽ có một cái máy tính khác đặt ở bên Mỹ ( ví dụ thôi chứ không biết nó đặt ở đâu nha ) có địa chỉ IP này.
Và giả sử máy tính hiện tại của chú có IP là 69.96.69.96 nha, thì khi chú truy cập đến facebook.com sẽ nhận kết quả trả về, người ta gọi đó là mô hình client - server:
Ví dụ, khi yêu cầu vào đường dẫn facebook.com thì web server nó trả về trang newsfeed
Tức là cái web server cùi bắp nhất phải làm những được việc sau:
Đó là lý do NodeJS ra đời.
Ừa, tạm hiểu, nhưng em vẫn không hiểu tại sao NodeJS xài V8 engine làm gì?
Ok, ta vô trang chủ V8 engine xem nó là gì nhá:
V8 is Google's open source JavaScript engine.
V8 implements ECMAScript as specified in ECMA-262.
V8 is written in C++ and is used in Google Chrome, the open source browser from Google.
V8 can run standalone, or can be embedded into any C++ application.
Để ý câu cuối là can be embedded into any C++ nha. Tức là NodeJS là một library lớn hơn nhưng trong đó có xài V8 engine. Mục đích là để tạo nên một web server có những tính năng như: Nhận request là gửi response cho client, vv ( đã nói ở trên ) mà vẫn sử dụng Javascript chứ không phải C++ hay Python.
A, thì ra là vậy
Đó vậy là đã hiểu ý đầu "Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine" rồi đúng không.
Vậy là còn:
Ừa, vậy event-driven là gì vậy anh?
Bài viết liên quan
[Case Study] - StatcWeb.Studio dùng nocode để làm tool nocode: 200h - 0 sales - 5 min(s) read - published on January 24, 2021[Case Study] Bán No-code MVP làm trong 100h giá $5000 - 11 min(s) read - published on January 15, 2021Chi tiết mình validate idea với nocode - 3 tuần 60 sales - $567 - 7 min(s) read - published on December 15, 2020Do things that don't scale - Lời khuyên tốt nhất để validate idea làm app - 2 min(s) read - published on November 22, 2020GPT-3 sẽ là phát minh quan trọng kể từ Blockchain - 4 min(s) read - published on September 15, 2020#6 - NoCode MVP - Tổng kết - 5 min(s) read - published on August 22, 2020#5 - NoCode MVP - Buông bỏ để hạnh phúc - 2 min(s) read - published on July 28, 2020#4 - NoCode MVP - Ý tưởng. Một lần chơi lớn - 4 min(s) read - published on July 2, 2020#3 - NoCode MVP - Sức mạnh của Bubble.io - 5 min(s) read - published on June 29, 2020#2 - NoCode MVP - Tại sao là NoCode và tương lai của nó - 7 min(s) read - published on June 28, 2020