Giới thiệu về Node.js

Bài đăng này là hướng dẫn bắt đầu sử dụng Node.js, môi trường thời gian chạy JavaScript phía máy chủ. Node.js được xây dựng dựa trên công cụ JavaScript V8 của Google Chrome và nó chủ yếu được sử dụng để tạo máy chủ web - nhưng nó không giới hạn ở điều đó

Node.js là mộtmôi trường thời gian chạy choJavaScriptchạy trênngười phục vụ.

Node.js là mã nguồn mở, đa nền tảng và kể từ khi được giới thiệu vào năm 2009, nó đã trở nên cực kỳ phổ biến và hiện đóng một vai trò quan trọng trong bối cảnh phát triển web. Nếu số sao trên GitHub là một yếu tố chỉ ra mức độ phổ biến, thì việc có hơn 58000 sao có nghĩa là rất nổi tiếng.

Node.js chạy công cụ JavaScript V8, cốt lõi của Google Chrome, bên ngoài trình duyệt. Node.js có thể tận dụng công việc của các kỹ sư đã tạo ra (và sẽ tiếp tục tạo) thời gian chạy JavaScript của Chrome cực nhanh và điều này cho phép Node.js hưởng lợi từ những cải tiến hiệu suất khổng lồ và biên dịch Just-In-Time. V8 thực hiện. Nhờ đó, mã JavaScript chạy trong Node.js có thể trở nên rất hiệu quả.

Ứng dụng Node.js được chạy bởi một quy trình duy nhất mà không cần tạo luồng mới cho mọi yêu cầu. Node cung cấp một tập hợp các nguyên thủy I / O không đồng bộ trong thư viện chuẩn của nó sẽ ngăn mã JavaScript chặn và nói chung, các thư viện trong Node.js được viết bằng cách sử dụng các mô hình không chặn, làm cho hành vi chặn trở thành ngoại lệ thay vì bình thường.

Khi Node.js cần thực hiện thao tác I / O, như đọc từ mạng, truy cập cơ sở dữ liệu hoặc hệ thống tệp, thay vì chặn luồng, Node.js sẽ tiếp tục hoạt động khi phản hồi trở lại, thay vì lãng phí chu kỳ CPU chờ đợi .

Điều này cho phép Node.js xử lý hàng nghìn kết nối đồng thời với một máy chủ duy nhất mà không gây ra gánh nặng quản lý đồng thời các luồng, đây sẽ là một nguồn lỗi chính.

Node.js có một lợi thế duy nhất bởi vì hàng triệu nhà phát triển giao diện người dùng viết JavaScript cho trình duyệt hiện có thể chạy mã phía máy chủ và mã phía giao diện người dùng mà không cần phải học một ngôn ngữ hoàn toàn khác.

Trong Node.js cái mớiECMAScripttiêu chuẩn có thể được sử dụng mà không gặp sự cố, vì bạn không phải đợi tất cả người dùng của mình cập nhật trình duyệt của họ - bạn chịu trách nhiệm quyết định phiên bản ECMAScript nào sẽ sử dụng bằng cách thay đổi phiên bản Node.js và bạn cũng có thể bật thử nghiệm cụ thể các tính năng bằng cách chạy Node với cờ.

Node.js có một số lượng lớn các thư viện

npmvới cấu trúc đơn giản của nó đã giúp hệ sinh thái của node.js phát triển mạnh mẽ và hiện tại sổ đăng ký npm lưu trữ gần 500.000 gói mã nguồn mở mà bạn có thể thoải mái sử dụng.

Một ứng dụng Node.js mẫu

Ví dụ phổ biến nhất Hello World của Node.js là một máy chủ web:

const http = require('http')

const hostname = ‘127.0.0.1’ const port = 3000

const server = http.createServer((req, res) => { res.statusCode = 200 res.setHeader(‘Content-Type’, ‘text/plain’) res.end(‘Hello World\n’) })

server.listen(port, hostname, () => { console.log(Server running at http://</span><span style="color:#e6db74">${</span><span style="color:#a6e22e">hostname</span><span style="color:#e6db74">}</span><span style="color:#e6db74">:</span><span style="color:#e6db74">${</span><span style="color:#a6e22e">port</span><span style="color:#e6db74">}</span><span style="color:#e6db74">/) })

Để chạy đoạn mã này, hãy lưu nó dưới dạngserver.jstập tin và chạynode server.jstrong thiết bị đầu cuối của bạn.

Mã này trước tiên bao gồm Node.jshttpmô-đun.

Node.js có mộtthư viện tiêu chuẩn, bao gồm hỗ trợ hạng nhất cho mạng.

CáccreateServer()phương pháp củahttptạo một máy chủ HTTP mới và trả về nó.

Máy chủ được thiết lập để lắng nghe trên cổng và tên máy chủ được chỉ định. Khi máy chủ đã sẵn sàng, hàm gọi lại được gọi, trong trường hợp này là thông báo cho chúng tôi rằng máy chủ đang chạy.

Bất cứ khi nào nhận được một yêu cầu mới,requestbiến cốđược gọi, cung cấp hai đối tượng: một yêu cầu (mộthttp.IncomingMessageđối tượng) và một phản hồi (mộthttp.ServerResponsevật).

2 đối tượng đó rất cần thiết để xử lý cuộc gọi HTTP.

Đầu tiên cung cấp các chi tiết yêu cầu. Trong ví dụ đơn giản này, điều này không được sử dụng, nhưng bạn có thể truy cập tiêu đề yêu cầu và dữ liệu yêu cầu.

Thứ hai được sử dụng để trả về dữ liệu cho người gọi.

Trong trường hợp này với

res.statusCode = 200

chúng tôi đặt thuộc tính Mã trạng thái thành 200, để cho biết phản hồi thành công.

Chúng tôi đặt tiêu đề Loại-Nội dung:

res.setHeader('Content-Type', 'text/plain')

và chúng tôi kết thúc đóng phản hồi, thêm nội dung làm đối số choend():

res.end('Hello World\n')

Các khung và công cụ của Node.js

Node.js là một nền tảng cấp thấp và để làm cho mọi thứ trở nên dễ dàng và thú vị hơn cho các nhà phát triển, hàng ngàn thư viện đã được xây dựng dựa trên Node.js.

Nhiều người trong số đó được thành lập theo thời gian như các lựa chọn phổ biến Dưới đây là danh sách không toàn diện về những thứ tôi cho là rất phù hợp và đáng học hỏi:

  • bày tỏ, một trong những cách đơn giản nhưng mạnh mẽ nhất để tạo máy chủ web. Cách tiếp cận tối giản của nó, không đơn giản hóa, tập trung vào các tính năng cốt lõi của một máy chủ, là chìa khóa thành công của nó.
  • Sao băng, một khung công tác full-stack cực kỳ mạnh mẽ, cung cấp cho bạn phương pháp tiếp cận đẳng hình để xây dựng ứng dụng với JavaScript, chia sẻ mã trên máy khách và máy chủ. Từng là một công cụ có sẵn cung cấp mọi thứ, bây giờ tích hợp với React libs frontend,Vuevà Angular. Có thể được sử dụng để tạo ứng dụng di động.
  • koa, được xây dựng bởi cùng một nhóm đằng sau Express, nhằm mục đích trở nên đơn giản hơn và nhỏ hơn, dựa trên kiến thức hàng đầu của nhiều năm. Dự án mới ra đời xuất phát từ nhu cầu tạo ra những thay đổi không tương thích mà không làm gián đoạn cộng đồng hiện có.
  • Next.js, một khuôn khổ để kết xuất phía máy chủ được kết xuấtPhản ứngcác ứng dụng.
  • Vi mô, một máy chủ rất nhẹ để tạo các vi dịch vụ HTTP không đồng bộ.
  • Socket.io, một công cụ giao tiếp thời gian thực để xây dựng các ứng dụng mạng.

Tải xuống miễn phí của tôiSổ tay Node.js


Các hướng dẫn nút khác: