Xuất ra dòng lệnh bằng Node

Cách in ra bảng điều khiển dòng lệnh bằng Node, từ console.log cơ bản đến các kịch bản phức tạp hơn

Đầu ra cơ bản bằng cách sử dụng mô-đun bảng điều khiển

Node cung cấp mộtconsolemô-đuncung cấp rất nhiều cách rất hữu ích để tương tác với dòng lệnh.

Về cơ bản nó giống nhưconsoleđối tượng bạn tìm thấy trong trình duyệt.

Phương pháp cơ bản nhất và được sử dụng nhiều nhất làconsole.log(), sẽ in chuỗi bạn chuyển cho nó vào bảng điều khiển.

Nếu bạn truyền một đối tượng, nó sẽ hiển thị nó dưới dạng một chuỗi.

Bạn có thể chuyển nhiều biến choconsole.log, ví dụ:

const x = 'x'
const y = 'y'
console.log(x, y)

và Node sẽ in cả hai.

Chúng tôi cũng có thể định dạng các cụm từ đẹp bằng cách chuyển các biến và công cụ định dạng.

Ví dụ:

console.log('My %s has %d years', 'cat', 2)
  • %sđịnh dạng một biến dưới dạng một chuỗi
  • %dhoặc là%iđịnh dạng một biến dưới dạng số nguyên
  • %fđịnh dạng một biến dưới dạng số dấu phẩy động
  • %Ođược sử dụng để in một biểu diễn đối tượng

Thí dụ:

console.log('%O', Number)

Xóa bảng điều khiển

console.clear()xóa bảng điều khiển (hành vi có thể phụ thuộc vào bảng điều khiển được sử dụng)

Đếm phần tử

console.count()là một phương pháp tiện dụng.

Lấy mã này:

const x = 1
const y = 2
const z = 3
console.count(
  'The value of x is ' + x + ' and has been checked .. how many times?'
)
console.count(
  'The value of x is ' + x + ' and has been checked .. how many times?'
)
console.count(
  'The value of y is ' + y + ' and has been checked .. how many times?'
)

Điều xảy ra là số đếm sẽ đếm số lần một chuỗi được in và in số bên cạnh nó:

Bạn chỉ có thể đếm táo và cam:

const oranges = ['orange', 'orange']
const apples = ['just one apple']
oranges.forEach(fruit => {
  console.count(fruit)
})
apples.forEach(fruit => {
  console.count(fruit)
})

Có thể có những trường hợp hữu ích khi in dấu vết ngăn xếp cuộc gọi của một hàm, có thể để trả lời câu hỏilàm thế nào bạn đạt được phần đó của mã?

Bạn có thể làm như vậy bằng cách sử dụngconsole.trace():

const function2 = () => console.trace()
const function1 = () => function2()
function1()

Điều này sẽ in dấu vết ngăn xếp. Đây là những gì được in nếu tôi thử điều này trong Node REPL:

Trace
    at function2 (repl:1:33)
    at function1 (repl:1:25)
    at repl:1:1
    at ContextifyScript.Script.runInThisContext (vm.js:44:33)
    at REPLServer.defaultEval (repl.js:239:29)
    at bound (domain.js:301:14)
    at REPLServer.runBound [as eval] (domain.js:314:12)
    at REPLServer.onLine (repl.js:440:10)
    at emitOne (events.js:120:20)
    at REPLServer.emit (events.js:210:7)

Tính thời gian đã bỏ ra

Bạn có thể dễ dàng tính toán thời gian một hàm cần để chạy, bằng cách sử dụngtime()timeEnd()

const doSomething = () => console.log('test')
const measureDoingSomething = () => {
  console.time('doSomething()')
  //do something, and measure the time it takes
  doSomething()
  console.timeEnd('doSomething()')
}
measureDoingSomething()

stdout và stderr

Như chúng ta đã thấy console.log rất phù hợp để in các thông báo trong Console. Đây được gọi là đầu ra tiêu chuẩn, hoặcstdout.

console.errorin vàostderrsuối.

Nó sẽ không xuất hiện trong bảng điều khiển, nhưng nó sẽ xuất hiện trong nhật ký lỗi.

Tô màu đầu ra

Bạn có thể tô màu đầu ra của văn bản trong bảng điều khiển bằng cách sử dụng các chuỗi thoát. Chuỗi thoát là một tập hợp các ký tự xác định một màu.

Thí dụ:

console.log('\x1b[33m%s\x1b[0m', 'hi!')

Bạn có thể thử điều đó trong Node REPL và nó sẽ inhi!Trong màu vàng.

Tuy nhiên, đây là cách cấp thấp để làm điều này. Cách đơn giản nhất để tô màu đầu ra bảng điều khiển là sử dụng thư viện.Phấnlà một thư viện như vậy, và ngoài việc tô màu, nó còn giúp ích cho các phương tiện tạo kiểu khác, như làm cho văn bản được in đậm, in nghiêng hoặc gạch chân.

Bạn cài đặt nó vớinpm install chalk, sau đó bạn có thể sử dụng nó:

const chalk = require('chalk')
console.log(chalk.yellow('hi!'))

Sử dụngchalk.yellowthuận tiện hơn nhiều so với việc cố gắng ghi nhớ các mã thoát và mã này dễ đọc hơn nhiều.

Kiểm tra liên kết dự án tôi đã đăng ở trên để biết thêm các ví dụ sử dụng.

Tạo thanh tiến trình

Phát triểnlà một gói tuyệt vời để tạo thanh tiến trình trong bảng điều khiển. Cài đặt nó bằng cách sử dụngnpm install progress

Đoạn mã này tạo thanh tiến trình 10 bước và cứ sau 100 mili giây thì hoàn thành một bước. Khi thanh hoàn thành, chúng tôi xóa khoảng thời gian:

const ProgressBar = require('progress')

const bar = new ProgressBar(’:bar’, { total: 10 }) const timer = setInterval(() => { bar.tick() if (bar.complete) { clearInterval(timer) } }, 100)

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


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