Node.js là gì? Tại sao tất cả mọi người sử dụng nó?

Tram Ho

Bạn đang học JavaScript và có thể bắt gặp mọi người thảo luận về Node.js và có những câu hỏi như “Node.js không phải là máy chủ web sao? Tại sao tôi phải cài đặt nó? Tại sao mọi người lại sử dụng nó?” Mục đích của bài viết này là để trả lời những câu hỏi đó.

Các tính năng của Javascript

Trước tiên, bạn cần hiểu sự khác biệt giữa JavaScript và các ngôn ngữ lập trình khác. JavaScript là ngôn ngữ lập trình chạy trên các trình duyệt như Chrome và Firefox, trong khi các ngôn ngữ lập trình phổ biến khác như Python và Ruby thường chạy trên máy tính. Nó giống như sự khác biệt giữa trình duyệt và máy tính – một cái dùng để lướt web, cái kia dùng để làm những công việc nghiêm túc. Hoặc, như tôi muốn nói, JavaScript là để duyệt web, trong khi các ngôn ngữ khác là để duyệt tủ lạnh.

hình ảnh.png

Các ứng dụng chạy trên máy tính (chẳng hạn như Python hoặc Ruby) có thể truy cập các chức năng của hệ điều hành (chẳng hạn như đọc và ghi tệp hoặc giao tiếp mạng), đây là điểm khác biệt. Hay nói cách khác, máy tính giống như một hộp sô cô la – bạn không bao giờ biết mình sẽ nhận được gì!

hình ảnh.png

Chỉ bằng cách truy cập vào máy tính, có khả năng các tệp trên máy tính có thể bị đọc, ghi hoặc xóa mà không được phép, vì vậy các chương trình chạy trên trình duyệt (JavaScript) bị ngăn truy cập vào các chức năng của hệ điều hành.

Tuy nhiên, thật bất tiện khi hoàn toàn không truy cập được vào các chức năng của HĐH nên trình duyệt làm trung gian giới hạn quyền truy cập vào các chức năng của HĐH. Thông qua dàn xếp này, quyền truy cập vào máy ảnh và micrô cũng được bật và giờ đây có thể tổ chức hội nghị trên web.

hình ảnh.png

Node.js là gì?

Node.js là một công cụ cho phép bạn chạy JavaScript trên máy tính của mình, thay vì chỉ trong trình duyệt của bạn.

hình ảnh.png

Node.js cài đặt một ứng dụng (môi trường thời gian chạy JavaScript) có tên là “node.exe” khi bạn cài đặt nó trên Windows, giống như khi bạn cài đặt Python, bạn nhận được “python.exe”. Với Node.js, bạn có thể truy cập các tính năng của hệ điều hành bằng JavaScript và thực hiện những việc như đọc và ghi tệp cũng như giao tiếp mạng mà bạn không thể thực hiện trên trình duyệt.

hình ảnh.png

Node.js không chỉ có thể được sử dụng cho các ứng dụng web mà còn có thể tạo các loại ứng dụng khác. Ví dụ: bạn có thể tạo các công cụ dòng lệnh và ứng dụng máy tính để bàn.

Node.js là môi trường phía máy chủ để chạy JavaScript?

Node.js là một môi trường được thiết kế để xây dựng các máy chủ web bằng JavaScript. Đó là lý do tại sao nó thường được gọi là “môi trường thực thi JavaScript phía máy chủ”. Tuy nhiên, ngày nay Node.js cũng được sử dụng làm môi trường để phát triển “JavaScript để chạy trong trình duyệt”, vì vậy nó có thể được sử dụng làm “môi trường thực thi JavaScript phía máy chủ” và “môi trường phát triển JavaScript phía máy khách” . Nói cách khác, Node.js được sử dụng cho cả hai!

npm là gì?

NPM là một công cụ hữu ích khi sử dụng Node.js. Nó giống như pip của Python, viên ngọc của Ruby (RubyGems), apt của Debian, Homebrew của Mac và hàng hóa của Rust.

Cũng có sợi, nhưng không sao vì nó có thể làm công việc tương tự như npm. “Gói” là các thư viện và khung, như Vue, React, webpack và jQuery.

Nếu bạn muốn sử dụng thư viện với Node.js, bạn có thể cài đặt nó bằng npm, vì vậy bạn không cần phải tải xuống tệp js và viết <script src="xxx.js"></script> . Nó giống như một dịch vụ giao hàng trọn gói kỳ diệu!

Tại sao mọi người sử dụng Node.js?

Bây giờ bạn có thể sử dụng Node.js, đã cho phép bạn sử dụng JavaScript, để viết các chương trình phía máy khách và tạo các ứng dụng web cũng như ứng dụng dành cho thiết bị di động/máy tính để bàn! Vâng!

Mục đích 1: Tôi muốn viết các chương trình phía máy khách theo thông số kỹ thuật mới của JavaScript hoặc TypeScript.

hình ảnh.png

Để sử dụng các đặc tả JavaScript mới nhất (ES2015 trở lên), bạn cần sử dụng Babel để chuyển đổi nó hoặc thiết lập một môi trường với Node.js.

Lần này chúng ta đừng nói về TypeScript.

Mục đích 2: Tôi muốn tạo một ứng dụng web.

Bạn có thể tạo các ứng dụng web bằng Node.js, giống như bạn có thể làm với Ruby + Rails hoặc Python + Django.

Môi trường thực thiNgôn ngữkhung web
hồng ngọchồng ngọcRuby on Rails ..vv
con trăncon trănDjango …vv
Node.jsJavaScriptThể hiện…vv

Node.js là ngôn ngữ lập trình được thiết kế để xây dựng các ứng dụng mạng có thể xử lý số lượng lớn kết nối đồng thời. Nó đảm nhận vai trò của một máy chủ web, nhận các yêu cầu HTTP và xử lý chúng.

Bạn có thể sử dụng Node.js thay vì máy chủ web thông thường (Apache hoặc nginx), nhưng thường thì cấu hình với Node.js và Apache hoặc nginx làm proxy ngược được sử dụng vì chỉ một mình Node.js là không đủ.

Những người chỉ có thể làm JavaScript có thể được yêu cầu chọn Node.js, nhưng nỗ lực học Node.js không khác nhiều so với nỗ lực học các ngôn ngữ lập trình khác, vì vậy tốt nhất là chọn mà không bị ràng buộc bởi ngôn ngữ và nghiên cứu tính năng của nó tốt.

Mục đích 3: Tôi muốn tạo ứng dụng cho mobile/desktop.

Sử dụng Node.js, bạn có thể tạo các ứng dụng dành cho thiết bị di động và ứng dụng dành cho máy tính để bàn. Đối với các ứng dụng dành cho thiết bị di động, bạn sử dụng khung React Native và đối với các ứng dụng dành cho máy tính để bàn, bạn sử dụng khung Electron. Electron là một khung để tạo các ứng dụng dành cho máy tính để bàn bằng JavaScript, HTML và CSS.

Điện tử : https://www.electronjs.org/

hình ảnh.png

JavaScript là ngôn ngữ được sử dụng để tạo trang web và thường được sử dụng để thao tác trên giao diện người dùng (UI). Do đó, có rất nhiều thư viện và khung có sẵn để xây dựng giao diện người dùng. Đây là một lợi thế lớn vì nó cho phép bạn tạo giao diện người dùng tương tự như các trang web.

Ngoài ra, sử dụng Electron, bạn có thể tạo các ứng dụng xử lý các tính năng của hệ điều hành như Windows, Mac, Linux, v.v. Ngoài ra, sử dụng Electron, bạn có thể tạo các ứng dụng chạy trên các nền tảng khác nhau như Windows, Mac, Linux, v.v. bằng cách sử dụng cùng một mã.

Các ứng dụng dành cho máy tính để bàn như Visual Studio Code, Slack, Discord, Twitch, Skype, v.v. được tạo bằng Electron.

Mục đích 4: Khác

Node.js được sử dụng cho nhiều mục đích khác nhau, chẳng hạn như gói nội dung trang web với webpack, chuyển đổi Sass thành CSS bằng cách sử dụng nút-sass, sử dụng các công cụ kiểm tra như Jest và các công cụ xác thực mã như ESLint, thiết lập cục bộ máy chủ web thân thiện với phát triển với webpack- dev-server và xây dựng các trang web tĩnh với Gatsby. Nó giống như một con dao của Quân đội Thụy Sĩ dành cho các nhà phát triển web!

Phần kết luận

Node.js đã mang lại tiềm năng cho JavaScript ngang bằng với các ngôn ngữ lập trình khác. (Công cụ JavaScript V8 cũng chịu trách nhiệm về điều này, nhưng nó không được đề cập trong văn bản vì nó có thể làm cho cuộc thảo luận trở nên phức tạp hơn.)

Như thường nói, JavaScript có một số điểm yếu trong thiết kế của nó so với các ngôn ngữ khác. Một số người có thể nghĩ rằng nó vẫn ngang hàng với các ngôn ngữ khác.

Tuy nhiên, JavaScript có cơ sở người dùng khổng lồ là giới trẻ và nó đang phát triển với tốc độ đáng kinh ngạc, bao gồm cả các thư viện của nó, khiến nó trở thành ngôn ngữ lập trình duy nhất có xu hướng thay đổi.

jQuery hiện được coi là một di tích lịch sử, nhưng nó ra đời sau Rails và Django (không dễ để so sánh, nhưng vẫn vậy). Nó cho thấy mọi thứ đang di chuyển nhanh như thế nào.

Cá nhân tôi thấy thật thú vị và thú vị khi có thể cưỡi trên làn sóng phát triển ly kỳ này của JavaScript được sinh ra trong thời đại này.

Cuối cùng, tôi hy vọng rằng bài viết này sẽ trả lời các câu hỏi phổ biến như “Có phải Node.js không phải là máy chủ web không? Tại sao tôi phải cài đặt nó nếu tôi chỉ muốn viết bằng ES2015?” mà thường được hỏi lúc đầu.

Và cuối cùng

Như mọi khi, tôi hy vọng bạn thích bài viết này và học được điều gì đó mới. Xin cảm ơn và hẹn gặp lại các bạn trong những bài viết tiếp theo!

Nếu các bạn thích bài viết này thì hãy cho mình 1 like và subscribe để ủng hộ mình nhé. Cảm ơn.

Nguồn

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo