Những nút đó

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn các cách khác nhau để thoát khỏi Node. chương trình js. Trước tiên, bạn cần hiểu rằng Node. js hoạt động trên một luồng hoặc quy trình chính. Bạn có thể sinh ra các tiến trình con bổ sung để xử lý thêm công việc. Thoát khỏi quy trình chính cho phép chúng tôi thoát khỏi Nút

Mặc dù có nhiều cách để thoát khỏi Node, nhưng một số cách tốt hơn những cách khác trong một số trường hợp nhất định, chẳng hạn như nếu bạn đang chạy REPL hay không. Chúng tôi sẽ giải thích điều này chi tiết hơn trong suốt bài viết

Để một tập lệnh thoát hoàn toàn

Thoát khỏi một nút. chương trình js bắt đầu tại dòng lệnh có thể đơn giản như đợi tập lệnh thực thi xong. Ngầm định, nút. js sẽ thoát khi đến cuối tập lệnh

Bạn có thể thấy điều này bằng cách chạy đoạn script sau

Chạy chương trình với lệnh

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
1, bạn sẽ thấy nó xuất ra câu lệnh đầu tiên về Batman. Ngoài ra, lệnh gọi lại "thoát" kích hoạt, dẫn đến việc in ra thông báo về việc thoát và mã thoát. Bạn sẽ thấy một cái gì đó tương tự như sau

$ node batman.js 
Batman begins
About to exit with code 0

Lưu ý rằng các sự kiện và vòng lặp đang chờ xử lý sẽ chặn thoát chương trình. Thêm chức năng lặp lại này vào cuối tập lệnh trên

Chạy lại. Lần này, chương trình không thoát, vì hàm

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
2 lặp lại chặn Nút. js thoát. Đầu ra của bạn sẽ trông giống như thế này

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...

Trường hợp "Tôi là Người Dơi. " cụm từ được in liên tục cho đến khi bạn thoát mạnh, như với

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
3 hoặc đóng thiết bị đầu cuối của bạn

Quy trình sử dụng. lối ra()

Chúng ta có thể thoát khỏi Node. js sử dụng lệnh gọi hàm

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
4 rõ ràng. Hàm
$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
4 thoát khỏi Nút hiện tại. quy trình js. Nó nhận một mã thoát, là một số nguyên

Đối tượng

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
0 là một biến toàn cục cho phép chúng ta quản lý Node hiện tại. quy trình js. Vì nó là toàn cầu nên chúng ta có thể truy cập nó từ bất cứ đâu trong Node. js mà không cần sử dụng
$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
1 để nhập nó

Hãy để chúng tôi cập nhật chương trình cuối cùng không thoát do chức năng

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
2. Lần này, chúng tôi sẽ buộc nó thoát bằng cách sử dụng
$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
3 sau 5 giây trôi qua. Thêm chức năng sau vào cùng 'người dơi. js' từ trước đó

Khi bạn chạy

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
1, bạn sẽ nhận thấy rằng lần này, chương trình chạy trong một khoảng thời gian giới hạn và sau đó thoát ra với mã thoát là 22

node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
I'm Batman!
About to exit with code 22

Sử dụng

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
4 hoạt động để thoát khỏi REPL (mà chúng ta sẽ thấy sau) cũng như để chấm dứt việc chạy Node. chương trình hoặc tập lệnh js

Nút. js diễn giải các mã khác 0 là lỗi và mã thoát 0 là thành công

nút thoát. js sử dụng quy trình. giết chết()

Chúng ta cũng có thể thoát khỏi Node. js sử dụng

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
6 để tắt Node đang chạy. quy trình js. Sự khác biệt giữa điều này và
$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
4 là
$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
6 lấy pid hoặc id tiến trình của tiến trình mà chúng ta muốn hủy, cũng như một tín hiệu tùy chọn mà chúng ta muốn gửi đến tiến trình. Điều này có nghĩa là chúng tôi có thể gửi tín hiệu để tiêu diệt các quy trình khác ngoài Nút chính. quy trình js. Điều này rất hữu ích trong các ứng dụng đồng thời cao với nhiều quy trình đang chạy

Để giết tiến trình Node chính, chúng ta chỉ cần chuyển pid của tiến trình chính

Để thấy điều này đang hoạt động, hãy thay thế hàm

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
9 trong ví dụ mã trước của chúng tôi bằng phiên bản này sử dụng
$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
6

Chương trình thoát đúng lịch trình như trước, sau khi một số câu lệnh tương tự được in. Lần này pid cũng được in ra bàn điều khiển (của bạn có thể khác 15)

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
0

Phương pháp này cũng hoạt động trong REPL cũng như trong Node. chương trình js

Cách thoát nút. js sử dụng quy trình. sự phá thai

Tương tự như vậy, chúng ta có thể sử dụng

node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
I'm Batman!
About to exit with code 22
1 để thoát khỏi Nút. js. Phương pháp này hoạt động trong REPL cũng như các tập lệnh và ứng dụng

Sự khác biệt giữa

node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
I'm Batman!
About to exit with code 22
1,
$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
6 và
$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
4 là
node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
I'm Batman!
About to exit with code 22
1 luôn thoát khỏi Nút. js ngay lập tức và tạo một tệp lõi. Ngoài ra, không có cuộc gọi lại sự kiện nào sẽ chạy

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

Ghi chú. Tệp lõi vừa được đề cập không được tạo nếu

node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
I'm Batman!
About to exit with code 22
6 được đặt thành
node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
I'm Batman!
About to exit with code 22
7. Xem hướng dẫn này để biết thêm chi tiết

Để xem nó hoạt động, hãy thay thế lệnh gọi

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
6 trong tệp
node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
I'm Batman!
About to exit with code 22
9 của chúng tôi bằng lệnh gọi tới
node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
I'm Batman!
About to exit with code 22
1 và chạy
$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
1

Khi bạn chạy chương trình với

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
1, chương trình sẽ in ra các dòng như trước, nhưng thoát ra sau khi hết thời gian chờ, in ra một số thông tin về trạng thái của chương trình khi nó bị hủy bỏ

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
0

REPL

Vì REPL (Read–eval–print loop) là một loại môi trường thực thi khác với Node điển hình của bạn. js, các chiến lược thoát này xứng đáng có các phần đặc biệt của riêng chúng. Điều này là do REPL là một môi trường tương tác và không thoát hoàn toàn như một tập lệnh

Như chúng tôi đã đề cập trong một số phần trước, một số chiến lược trên cũng sẽ hoạt động trong REPL. Tuy nhiên, việc sử dụng chúng trong trường hợp này không phải là điển hình và thay vào đó, bạn nên sử dụng các phương pháp sau

Thoát bằng Tổ hợp phím

Không giống như vim, thoát khỏi REPL thực sự đơn giản. Trong REPL đang chạy, bạn có thể thoát khỏi nó bằng cách sử dụng tổ hợp phím

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
3 và nhập nó hai lần. Điều này sẽ gửi SIGINT hoặc tín hiệu gián đoạn tới REPL. Điều này thường được sử dụng để thoát khỏi các chương trình trong hệ thống POSIX

Sử dụng. thoát lệnh

Chúng ta cũng có thể thoát khỏi một Node. js REPL bằng cách sử dụng lệnh ". lối ra". Khi bạn nhập cái này vào Node REPL đang chạy, REPL hiện tại sẽ thoát. Lời gọi này hoạt động tương tự như phương pháp

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
3 đã thảo luận ở trên

Phần kết luận

Trong nhiều trường hợp, sử dụng

$ node batman.js 
Batman begins
I'm Batman!
I'm Batman!
I'm Batman!
...
4 là đủ để thoát khỏi Node. js. Tuy nhiên, như chúng ta đã thấy, có rất nhiều lựa chọn thay thế. Các phương pháp khác nhau cho phép bạn linh hoạt thoát khỏi bất kỳ vị trí cụ thể nào trong mã của mình. Tuy nhiên, bạn cần cẩn thận với sức mạnh bổ sung này, không chèn mã nguy hiểm có thể dẫn đến thoát ngoài dự kiến, làm hỏng chương trình của bạn

sẽ nút. js chết?

Câu trả lời ngắn gọn là “KHÔNG. ” Câu trả lời dài là “ KHÔNG, nó chưa chết và có lẽ nó sẽ không bao giờ chết . Nút.

Nút LTS là gì?

Phiên bản LTS là tên viết tắt của phiên bản Hỗ trợ trong thời gian dài trong đó việc phát hành phần mềm được duy trì trong một khoảng thời gian dài hơn . Phiên bản LTS thường được khuyên dùng cho hầu hết người dùng. trong nút. js, các phiên bản mới thường đi kèm với nhiều tính năng hơn, hiệu suất được tối ưu hóa và sửa lỗi.

nút là gì. js dùng để làm gì?

Nó được sử dụng cho lập trình phía máy chủ và được triển khai chủ yếu cho các máy chủ hướng sự kiện, không bị chặn, chẳng hạn như các trang web truyền thống và dịch vụ API phụ trợ , nhưng ban đầu được thiết kế với các kiến ​​trúc dựa trên đẩy, thời gian thực. Mọi trình duyệt đều có phiên bản công cụ JS riêng và nút.

là nút. js một phụ trợ?

Nút. js đôi khi bị các nhà phát triển hiểu nhầm là một khung phụ trợ được sử dụng riêng để xây dựng các máy chủ. Đây không phải là trường hợp; . Node. js có thể được sử dụng trên giao diện người dùng cũng như phụ trợ .