Cách viết và chạy chương trình đầu tiên của bạn trong Node.js – cách chạy tệp trong node.js

Node.js là một môi trường thời gian chạy mã nguồn mở phổ biến có thể thực thi JavaScript bên ngoài trình duyệt bằng cách sử dụng công cụ JavaScript V8, công cụ này giống với công cụ…

< strong> Bạn đang xem: cách chạy tệp trong node.js

Tác giả đã chọn Open Internet / Free Speech Fund để nhận khoản đóng góp như một phần của chương trình Viết cho DO donate .

Giới thiệu

Node.js là môi trường thời gian chạy nguồn mở phổ biến có thể thực thi JavaScript bên ngoài trình duyệt bằng cách sử dụng công cụ JavaScript V8, cũng là công cụ được sử dụng để cung cấp năng lượng thực thi JavaScript của trình duyệt web Google Chrome . Node runtime thường được sử dụng để tạo các công cụ dòng lệnh và máy chủ web.

Học Node.js sẽ cho phép bạn viết mã front-end và back-end của bạn bằng cùng một ngôn ngữ. Sử dụng JavaScript trong toàn bộ ngăn xếp của bạn có thể giúp giảm thời gian chuyển đổi ngữ cảnh và các thư viện được chia sẻ dễ dàng hơn giữa máy chủ back-end và các dự án front-end của bạn.

Ngoài ra, nhờ hỗ trợ thực thi không đồng bộ , Node.js vượt trội trong các tác vụ I / O chuyên sâu, đây là điều khiến nó trở nên rất phù hợp với web. Các ứng dụng thời gian thực, như phát trực tuyến video hoặc các ứng dụng liên tục gửi và nhận dữ liệu, có thể chạy hiệu quả hơn khi được viết bằng Node.js.

Trong hướng dẫn này, bạn sẽ tạo chương trình đầu tiên của mình với thời gian chạy Node.js. Bạn sẽ được giới thiệu một số khái niệm dành riêng cho Node và xây dựng theo cách của bạn để tạo một chương trình giúp người dùng kiểm tra các biến môi trường trên hệ thống của họ. Để làm điều này, bạn sẽ học cách xuất chuỗi ra bảng điều khiển, nhận thông tin đầu vào từ người dùng và truy cập các biến môi trường.

Điều kiện tiên quyết

Để hoàn thành hướng dẫn này, bạn sẽ cần:

  • Node.js được cài đặt trên máy phát triển của bạn. Hướng dẫn này sử dụng Node.js phiên bản 10.16.0. Để cài đặt tính năng này trên macOS hoặc Ubuntu 18.04, hãy làm theo các bước trong Cách cài đặt Node.js và Tạo Môi trường Phát triển Cục bộ trên macOS hoặc phần “Cài đặt bằng PPA” của Cách cài đặt Node.js trên Ubuntu 18.04 .
  • Kiến thức cơ bản về JavaScript mà bạn có thể tìm thấy tại đây: Cách viết mã trong JavaScript .

Nếu bạn muốn thử nghiệm với Node.js mà không sử dụng máy chủ hoặc máy tính cục bộ của mình, bạn có thể sử dụng một thiết bị đầu cuối tương tác trong trình duyệt của mình. Nhấp vào nút Khởi chạy thiết bị đầu cuối tương tác! bên dưới để bắt đầu.

Bước 1 – Xuất ra Bảng điều khiển

Để viết “Xin chào, Thế giới!” , mở trình soạn thảo văn bản dòng lệnh, chẳng hạn như nano và tạo một tệp mới:

  
  1. nano

    hello.js

Khi mở trình soạn thảo văn bản, hãy nhập mã sau:

hello.js

  console 

.

nhật ký

(

"Xin chào thế giới"

)

;

Đối tượng console trong Node.js cung cấp các phương thức đơn giản để ghi vào stdout , stderr hoặc vào bất kỳ luồng Node.js nào khác, mà trong hầu hết các trường hợp là dòng lệnh. Phương thức log in ra luồng stdout , vì vậy bạn có thể thấy nó trong bảng điều khiển của mình.

Trong ngữ cảnh của Node.js, luồng là các đối tượng có thể nhận dữ liệu, như luồng stdout hoặc các đối tượng có thể xuất dữ liệu, như ổ cắm mạng hoặc tệp. Trong trường hợp của các luồng stdout stderr , mọi dữ liệu được gửi đến chúng sau đó sẽ được hiển thị trong bảng điều khiển. Một trong những điều tuyệt vời về luồng là chúng dễ dàng được chuyển hướng, ví dụ: trong trường hợp đó, bạn có thể chuyển hướng đầu ra của chương trình của mình thành một tệp.

Lưu và thoát khỏi nano bằng cách nhấn CTRL + X , khi được nhắc lưu tệp, nhấn Y . Bây giờ chương trình của bạn đã sẵn sàng để chạy.

Bước 2 – Chạy Chương trình

Để chạy chương trình này, hãy sử dụng lệnh node như sau:

  
  1. node

    hello.js

Chương trình hello.js sẽ thực thi và hiển thị kết quả sau:

  

Đầu ra

Hello World

Trình thông dịch Node.js đọc tệp và thực thi console.log ("Hello World"); bằng cách gọi phương thức log của đối tượng console chung. Chuỗi "Hello World" đã được chuyển làm đối số cho hàm log .

Mặc dù dấu ngoặc kép là cần thiết trong mã để chỉ ra rằng văn bản là một chuỗi, chúng không được in ra màn hình.

Sau khi xác nhận rằng chương trình hoạt động, hãy làm cho nó tương tác hơn.

Bước 3 – Nhận thông tin nhập của người dùng qua đối số dòng lệnh

Mỗi khi bạn chạy Node.js “Hello, World!” chương trình, nó tạo ra cùng một đầu ra. Để làm cho chương trình năng động hơn, hãy lấy thông tin đầu vào từ người dùng và hiển thị trên màn hình.

Các công cụ dòng lệnh thường chấp nhận các đối số khác nhau để sửa đổi hành vi của chúng. Ví dụ: chạy node với đối số --version sẽ in phiên bản đã cài đặt thay vì chạy trình thông dịch. Trong bước này, bạn sẽ làm cho mã của mình chấp nhận đầu vào của người dùng thông qua các đối số dòng lệnh.

Tạo một tệp mới ects.js bằng nano:

  
  1. nano

    objects.js

Nhập mã sau:

đối số.js

  console 

.

nhật ký

(

quy trình

.

argv

)

;

Đối tượng process là một đối tượng Node.js toàn cầu có chứa các hàm và tất cả dữ liệu liên quan đến quá trình Node.js hiện đang chạy. Thuộc tính argv là một mảng chuỗi chứa tất cả các đối số dòng lệnh được cung cấp cho một chương trình.

Lưu và thoát nano bằng cách nhập CTRL + X , khi được nhắc lưu tệp, hãy nhấn Y .

Bây giờ khi bạn chạy chương trình này, bạn cung cấp một đối số dòng lệnh như sau:

  
  1. node

    objects.js hello world

Đầu ra giống như sau:

  

Đầu ra

['/ usr / bin / node', '/home/sammy/first-program/arguments.js', 'xin chào', 'thế giới' ]

Đối số đầu tiên trong mảng process.argv luôn là vị trí của tệp nhị phân Node.js đang chạy chương trình. Đối số thứ hai luôn là vị trí của tệp đang được chạy. Các đối số còn lại là những gì người dùng đã nhập, trong trường hợp này là: hello world .

Chúng tôi chủ yếu quan tâm đến các đối số mà người dùng đã nhập, không phải đối số mặc định mà Node.js cung cấp. Mở tệp objects.js để chỉnh sửa:

  
  1. nano

    objects.js

Thay đổi console.log (process.arg); thành như sau:

đối số.js

  console 

.

nhật ký

(

quy trình

.

argv

.

lát

(

2

)

)

;

argv là một mảng, bạn có thể sử dụng phương thức slice được tích hợp sẵn của JavaScript để trả về một lựa chọn các phần tử. Khi bạn cung cấp hàm slice với 2 làm đối số của nó, bạn sẽ nhận được tất cả các phần tử của argv đứng sau phần tử thứ hai của nó; tức là các đối số mà người dùng đã nhập.

Chạy lại chương trình bằng lệnh node và các đối số tương tự như lần trước:

  
  1. node

    objects.js hello world

Bây giờ, đầu ra trông giống như sau:

  

Đầu ra

['hello', 'world']

Giờ đây, bạn có thể thu thập thông tin đầu vào từ người dùng, hãy thu thập thông tin đầu vào từ môi trường của chương trình.

Bước 4 – Truy cập các biến môi trường

Biến môi trường là dữ liệu khóa-giá trị được lưu trữ bên ngoài chương trình và được cung cấp bởi Hệ điều hành. Chúng thường được đặt bởi hệ thống hoặc người dùng và có sẵn cho tất cả các quy trình đang chạy cho mục đích cấu hình hoặc trạng thái. Bạn có thể sử dụng đối tượng process của Node để truy cập chúng.

Sử dụng nano để tạo tệp mới environment.js:

  
  1. nano

    môi trường.js

Thêm mã sau:

environment.js

  console 

.

nhật ký

(

quy trình

.

env

)

;

Đối tượng env lưu trữ tất cả các biến môi trường có sẵn khi Node.js đang chạy chương trình.

Lưu và thoát như trước đây và chạy tệp environment.js bằng lệnh node .

  
  1. node

    môi trường.js

Khi chạy chương trình, bạn sẽ thấy đầu ra tương tự như sau:

  

Đầu ra

{SHELL: '/ bin / bash', SESSION_MANAGER: 'local / digitalocean: @ / tmp / .ICE-unix / 1003, unix / digitalocean: /tmp/.ICE-unix/1003', COLORTERM: 'truecolor', SSH_AUTH_SOCK: '/ run / user / 1000 / keyring / ssh', XMODIFIERS: '@ im = ibus', DESKTOP_SESSION: 'ubuntu', SSH_AGENT_PID: '1150', NKT: '/ home / sammy / first-program', LOGNAME: 'sammy', GPG_AGENT_INFO: '/run/user/1000/gnupg/S.gpg-agent:0:1', GJS_DEBUG_TOPICS: 'JS LỖI; JS LOG', WINDOWPATH: '2', TRANG CHỦ: '/ home / sammy', USERNAME: 'sammy', IM_CONFIG_PHASE: '2', LANG: 'en_US.UTF-8', VTE_VERSION: '5601', CLUTTER_IM_MODULE: 'xim', GJS_DEBUG_OUTPUT: 'stderr', LESSCLOSE: '/ usr / bin / lesspipe% s% s', HẠN: 'xterm-256color', LESSOPEN: '| / usr / bin / lesspipe% s ', NGƯỜI DÙNG: 'sammy', HIỂN THỊ: ': 0', SHLVL: '1', ĐƯỜNG DẪN: '/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games: / snap / bin', DBUS_SESSION_BUS_ADDRESS: 'unix: path = / run / user / 1000 / bus', _: '/ usr / bin / node', OLDPWD: '/ home / sammy'}

Hãy nhớ rằng nhiều biến môi trường mà bạn thấy phụ thuộc vào cấu hình và cài đặt của hệ thống của bạn và đầu ra của bạn có thể trông khác đáng kể so với những gì bạn thấy ở đây. Thay vì xem một danh sách dài các biến môi trường, bạn có thể muốn truy xuất một biến cụ thể.

Bước 5 – Truy cập một biến môi trường được chỉ định

Trong bước này, bạn sẽ xem các biến môi trường và giá trị của chúng bằng cách sử dụng đối tượng global process.env và in giá trị của chúng ra bảng điều khiển.

Đối tượng process.env là một ánh xạ đơn giản giữa các tên biến môi trường và các giá trị của chúng được lưu trữ dưới dạng chuỗi. Giống như tất cả các đối tượng trong JavaScript , bạn truy cập vào một thuộc tính riêng lẻ bằng cách tham chiếu tên của nó trong dấu ngoặc vuông.

Mở tệp environment.js để chỉnh sửa:

  
  1. nano

    môi trường.js

Thay đổi console.log (process.env); thành:

environment.js

  console 

.

nhật ký

(

process

.

env

[

"TRANG CHỦ"

]

)

;

Lưu tệp và thoát. Bây giờ hãy chạy chương trình environment.js :

  
  1. node

    môi trường.js

Đầu ra bây giờ trông giống như sau:

  

Đầu ra

/ home / sammy

Thay vì in toàn bộ đối tượng, giờ đây bạn chỉ in thuộc tính HOME của process.env , thuộc tính này lưu trữ giá trị của mã $ HOME biến môi trường.

Một lần nữa, hãy nhớ rằng đầu ra từ mã này có thể sẽ khác với những gì bạn thấy ở đây vì nó dành riêng cho hệ thống của bạn. Bây giờ bạn có thể chỉ định biến môi trường để truy xuất, bạn có thể nâng cao chương trình của mình bằng cách hỏi người dùng về biến mà họ muốn xem.

Bước 6 - Truy xuất một đối số để phản hồi cho đầu vào của người dùng

Tiếp theo, bạn sẽ sử dụng khả năng đọc đối số dòng lệnh và biến môi trường để tạo tiện ích dòng lệnh in giá trị của biến môi trường ra màn hình.

Sử dụng nano để tạo tệp mới echo.js :

  
  1. nano

    echo.js

Thêm mã sau:

echo.js

  

const

args

=

process

.

argv

.

lát

(

2

)

;

bảng điều khiển

.

nhật ký

(

process

.

env

[

args

[

0

]

]

)

;

Dòng đầu tiên của echo.js lưu trữ tất cả các đối số dòng lệnh mà người dùng đã cung cấp vào một biến hằng số được gọi là args . Dòng thứ hai in biến môi trường được lưu trữ trong phần tử đầu tiên của args ; tức là đối số dòng lệnh đầu tiên mà người dùng cung cấp.

Lưu và thoát khỏi nano , sau đó chạy chương trình như sau:

  
  1. node

    echo.js

    TRANG CHỦ < / p>

Bây giờ, đầu ra sẽ là:

  

Đầu ra

/ home / sammy

Đối số HOME đã được lưu vào mảng args , sau đó được sử dụng để tìm giá trị của nó trong môi trường thông qua process.env đối tượng.

Tại thời điểm này, bạn có thể truy cập giá trị của bất kỳ biến môi trường nào trên hệ thống của mình. Để xác minh điều này, hãy thử xem các biến sau: PWD , USER , PATH .

Truy xuất các biến đơn lẻ là tốt, nhưng để người dùng chỉ định số lượng biến họ muốn sẽ tốt hơn.

Bước 7 - Xem Nhiều Biến Môi trường

Hiện tại, ứng dụng chỉ có thể kiểm tra một biến môi trường tại một thời điểm. Sẽ rất hữu ích nếu chúng ta có thể chấp nhận nhiều đối số dòng lệnh và nhận giá trị tương ứng của chúng trong môi trường. Sử dụng nano để chỉnh sửa echo.js :

  
  1. nano

    echo.js

Chỉnh sửa tệp để tệp có mã sau thay thế:

echo.js

  

const

args

=

process

.

argv

.

lát

(

2

)

;

args

.

forEach

(

arg

= & gt;

{

bảng điều khiển

.

nhật ký

(

process

.

env

[

arg

]

)

;

}

)

;

Phương thức forEach là phương thức JavaScript chuẩn trên tất cả các đối tượng mảng. Nó chấp nhận một hàm gọi lại được sử dụng khi nó lặp qua mọi phần tử của mảng. Bạn sử dụng forEach trên mảng args , cung cấp cho nó một hàm gọi lại in giá trị của đối số hiện tại trong môi trường.

Lưu và thoát khỏi tệp. Bây giờ, hãy chạy lại chương trình với hai đối số:

  
  1. node

    echo.js

    TRANG CHỦ < / p>

    NKT

Bạn sẽ thấy kết quả sau:

  [đầu ra nhãn_phụ cấp]
/ home / sammy
/ home / sammy / chương trình đầu tiên
 

Hàm forEach đảm bảo rằng mọi đối số dòng lệnh trong mảng args đều được in.

Giờ đây, bạn đã có cách để truy xuất các biến mà người dùng yêu cầu, nhưng chúng tôi vẫn cần xử lý trường hợp người dùng nhập dữ liệu không hợp lệ.

Bước 8 - Xử lý đầu vào không xác định

Để xem điều gì sẽ xảy ra nếu bạn cung cấp cho chương trình một đối số không phải là một biến môi trường hợp lệ, hãy chạy như sau:

  
  1. node

    echo.js

    TRANG CHỦ < / p>

    NKT

    NOT_DEFINED

Đầu ra sẽ giống như sau:

  [đầu ra nhãn_phụ cấp]
/ home / sammy
/ home / sammy / chương trình đầu tiên
chưa xác định
 

Hai dòng đầu tiên in như mong đợi và dòng cuối cùng chỉ có không xác định . Trong JavaScript, giá trị không xác định có nghĩa là một biến hoặc thuộc tính chưa được gán giá trị. Vì NOT_DEFINED không phải là một biến môi trường hợp lệ, nó được hiển thị dưới dạng không xác định .

Sẽ hữu ích hơn cho người dùng khi thấy thông báo lỗi nếu đối số dòng lệnh của họ không được tìm thấy trong môi trường.

Mở echo.js để chỉnh sửa:

  
  1. nano

    echo.js

Chỉnh sửa echo.js để nó có mã sau:

echo.js

  

const

args

=

process

.

argv

.

lát

(

2

)

;

args

.

forEach

(

arg

= & gt;

{

let

envVar

=

process

.

env

[

arg

]

;

nếu

(

envVar

===

không xác định

)

{

bảng điều khiển

.

lỗi

(

`

Không thể tìm thấy "

$ {

arg

}

"trong môi trường < / p>

`

)

;

}

khác

{

bảng điều khiển

.

nhật ký

(

envVar

)

;

}

}

)

;

Tại đây, bạn đã sửa đổi hàm gọi lại được cung cấp cho forEach để thực hiện những việc sau:

  1. Nhận giá trị của đối số dòng lệnh trong môi trường và lưu trữ nó trong một biến envVar .
  2. Kiểm tra xem giá trị của envVar có phải là không xác định hay không.
  3. Nếu envVar không xác định , thì chúng tôi sẽ in một thông báo hữu ích cho biết rằng không thể tìm thấy nó.
  4. Nếu một biến môi trường được tìm thấy, chúng tôi sẽ in giá trị của nó.

Lưu ý : Hàm console.error in thông báo ra màn hình qua luồng stderr , trong khi console.log < / code> in ra màn hình qua luồng stdout . Khi bạn chạy chương trình này qua dòng lệnh, bạn sẽ không nhận thấy sự khác biệt giữa luồng stdout stderr , nhưng cách tốt là in lỗi qua stderr stream để các chương trình khác có thể nhận dạng và xử lý chúng dễ dàng hơn, điều này có thể phân biệt được sự khác biệt.

Bây giờ, hãy chạy lệnh sau một lần nữa:

  
  1. node

    echo.js

    TRANG CHỦ < / p>

    NKT

    NOT_DEFINED

Lần này đầu ra sẽ là:

  [đầu ra nhãn_phụ cấp]
/ home / sammy
/ home / sammy / chương trình đầu tiên
Không thể tìm thấy "NOT_DEFINED" trong môi trường
 

Giờ đây, khi bạn cung cấp đối số dòng lệnh không phải là biến môi trường, bạn sẽ nhận được thông báo lỗi rõ ràng cho biết như vậy.

Kết luận

Chương trình đầu tiên của bạn hiển thị “Hello World” trên màn hình và bây giờ bạn đã viết tiện ích dòng lệnh Node.js đọc các đối số của người dùng để hiển thị các biến môi trường.

Nếu bạn muốn thực hiện điều này xa hơn, bạn có thể thay đổi hoạt động của chương trình này nhiều hơn nữa. Ví dụ: bạn có thể muốn xác thực các đối số dòng lệnh trước khi in. Nếu một đối số không được xác định, bạn có thể trả về lỗi và người dùng sẽ chỉ nhận được kết quả nếu tất cả các đối số là biến môi trường hợp lệ.

Nếu bạn muốn tiếp tục học Node.js, bạn có thể quay lại loạt bài Cách viết mã trong Node.js hoặc duyệt qua các dự án lập trình và thiết lập trên trang chủ đề Node của chúng tôi .


Xem thêm những thông tin liên quan đến chủ đề cách chạy tệp trong node.js

499 - Node JS - Express JS - Upload File dùng module Multer

  • Tác giả: Code là Ghiền
  • Ngày đăng: 2021-02-01
  • Đánh giá: 4 ⭐ ( 6636 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: 499 - Node JS - Express JS - Upload File dùng module Multer

    Code:
    https://github.com/codelaghien/NodeJS_ExpressJS

    1. New folder
    2. Vào DOS Prompt (lệnh cmd)
    c:\\..\\New folder: git clone https://github.com/codelaghien/NodeJS_ExpressJS.git
    3. Vào thư mục: NodeJS_ExpressJS
    c:\\..\\New folder: cd NodeJS_ExpressJS
    4. Chạy chương trình
    c:\\..\\New folder\\NodeJS_ExpressJS: git checkout 499
    5. Chạy lệnh
    c:\\..\\New folder\\NodeJS_ExpressJS: npm install
    6. Chạy chương trình
    c:\\..\\New folder\\NodeJS_ExpressJS: node app.js

    Background Music:
    Moonrise
    Reed Mathis

Triển khai ứng dụng Nodejs trên máy chủ Centos

  • Tác giả: nodejs.vn
  • Đánh giá: 3 ⭐ ( 8396 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Học lập trình web bằng Node.js Phát triển ứng dụng trên local tương đối đơn giản. Bạn chỉ việc cd vào thư mục, gõ câu lệnh node app.js, ứng dụng đã hoạt động. Mọi thứ sẽ trở nên phức tạp hơn khi bạn đưa ứng dụng lên server. Nếu việc triển khai ứng dụng PH...

Làm cách nào để chạy tệp hello.js trong Node.js trên windows?

  • Tác giả: qastack.vn
  • Đánh giá: 3 ⭐ ( 4805 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Dưới đây là các bước chính xác tôi vừa thực hiện để chạy ví dụ "Hello…

NodeJS – Sử dụng Node

  • Tác giả: phocode.com
  • Đánh giá: 4 ⭐ ( 9088 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

"Module" trong Nodejs, khái niệm và thực tiễn.

  • Tác giả: viblo.asia
  • Đánh giá: 5 ⭐ ( 3887 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Xin chào tất cả các bạn, tiếp tục series lập trình Nodejs, bài hôm nay của chúng ta sẽ xoay quanh một thuật ngữ rất quan trọng trong Nodejs, đó là "Module". Cùng tìm hiểu xem nó là gì và cách sử dụng...

Hướng dẫn cài đặt và chạy project NodeJS trên Window, Mac OS, Ubuntu, CentOS nhanh nhất

  • Tác giả: vncoder.vn
  • Đánh giá: 3 ⭐ ( 6868 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: NodeJS hiện là một platform khá được ưa chuộng để phát triển những website, server, công cụ đòi hỏi hiệu năng cao. Trong bài viết này VNCoder sẽ hướng dẫn các bạn cài đặt và thực thi một project NodeJS trên các hệ điều hành Window, Mac OS, Ubuntu, và CentOS nhanh nhất

Hướng dẫn NodeJS cho người mới bắt đầu

  • Tác giả: openplanning.net
  • Đánh giá: 4 ⭐ ( 9414 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Cách chuyển đổi các lớp với thuộc tính danh sách lớp JavaScript - danh sách phân loại chuyển đổi hai lớp