Môi trường Node Js, Browser và những điểm khác biệt

Môi trường Node Js, Browser và những điểm khác biệt

Trước khi đi vào vấn đề chính thì chúng ta cần nắm rõ hai khái niệm sau đây: NodeBrowser.

Node là gì ?

Node là một môi trường máy chủ mã nguồn mở, được xây dựng trên bộ công cụ V8 Javascript - một bộ công cụ nổi tiếng của Google. Nền tảng Node runtime bao gồm mọi thứ mà bạn cần để hoàn thành một chương trình Javascript.

Browser là gì ?

Browser hay còn gọi là trình duyệt web, bất cứ phần mềm nào cho phép bạn truy cập website, biên dịch được mã HTML, CSS, Javascript và cho phép lưu cookie thì được gọi là Browser.

Sự khác biệt giữa hai môi trường Node và Browser

Điểm giống nhau: Cả hai đều là môi trường để thực thi code Javascript. nhưng node thực hiện việc đó ở phía máy chủ (server), còn trình duyệt thực hiện ở phía client. Và cả hai đều cùng sử dụng Javascript engine.

Điểm khác nhau: 

  • Browser, bạn có thể tương tác với DOM hoặc các API (localStorage, sessionStorage,..). Tuy nhiên những thứ đó không tồn tại ở Node. Bên cạnh đó Node cũng không có các object "document" và "window" và những đối tượng khác có sẵn trong Browser.
var name = 'Code Learn'

console.log(window.name);

Đoạn code trên nếu chạy ở Node sẽ báo lỗi window is not defiend.

  • Browser không có các API mà Node Js cung cấp trong npm (node package manager). 

  • NodeJs, bạn có thể kiểm soát được môi trường khi phát triển, và bạn có thể chọn version cho NodeJs. Ở môi trường Browser thì bạn không có nhiều quyền lựa chọn để sử dụng.
  • Với NodeJs, bạn có thể sử dụng từ khóa "require" để sử dụng các module nhưng ở Browser thì không. Khi bạn sử dụng "require" trong Browser thì trình duyệt sẽ báo lỗi.

  • Browser có giao diện đồ họa còn Node thì không.
  • Ở Node, bạn có toàn quyền truy cập hệ thống người dùng. Không giống Browser, NodeJs có thể truy cập hệ thống của bạn như các ứng dụng khác. Có nghĩa là bạn có thể đọc và ghi trực tiếp từ file system hoặc là thực thi những phần mềm khác. Bên cạnh đó bạn còn có thể viết một ứng dụng desktop hoàn toàn có thể với NodeJs bao gồm UI thông qua các modules (ví dụ Electron). Vì có thể truy cập vào hệ thống người dùng nên cần tránh chạy các đoạn code Javascript không đáng tin cậy ở NodeJs.

Tạm kết

Trên đây là những sự khác biệt giữa Node và Browser mà bất kì ai cũng cần phải biết. Nhằm tránh những lỗi không mong muốn thì bạn cầm nắm rõ những vấn đề này. Hy vọng bài viết này giúp ích cho những bạn mới bắt đầu học lập trình. Nếu có góp ý hay thắc mắc gì thì vui lòng comment bên dưới giúp mình nhé. Chúc các bạn học tốt