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
- Xóa bảng điều khiển
- Đếm phần tử
- In dấu vết ngăn xếp
- Tính thời gian đã bỏ ra
- stdout và stderr
- Tô màu đầu ra
- Tạo thanh tiến trình
Đầ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ộtconsole
mô-đ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%d
hoặ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)
})
In dấu vết ngăn xếp
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()
và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.error
in vàostderr
suố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.yellow
thuậ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:
- Giới thiệu về trình quản lý gói npm
- Giới thiệu về Node.js
- Yêu cầu HTTP bằng Axios
- Nơi lưu trữ ứng dụng Node.js
- Tương tác với API Google Analytics bằng Node.js
- Trình chạy gói nút npx
- Hướng dẫn package.json
- Npm cài đặt các gói ở đâu?
- Cách cập nhật Node.js
- Cách sử dụng hoặc thực thi một gói được cài đặt bằng npm
- Tệp package-lock.json
- Phiên bản ngữ nghĩa sử dụng npm
- Bạn có nên cam kết thư mục node_modules cho Git không?
- Cập nhật tất cả các phụ thuộc Node lên phiên bản mới nhất của chúng
- Phân tích cú pháp JSON với Node.js
- Tìm phiên bản đã cài đặt của gói npm
- Luồng Node.js
- Cài đặt phiên bản cũ hơn của gói npm
- Lấy thư mục hiện tại trong Node
- Cách đăng nhập một đối tượng trong Node
- Thể hiện chức năng từ tệp Node bằng cách sử dụng xuất
- Sự khác biệt giữa Node và Browser
- Thực hiện yêu cầu HTTP POST bằng Node
- Nhận dữ liệu nội dung yêu cầu HTTP bằng Node
- Bộ đệm nút
- Sơ lược về lịch sử Node.js
- Cách cài đặt Node.js
- Bạn cần biết bao nhiêu JavaScript để sử dụng Node?
- Cách sử dụng Node.js REPL
- Nút, chấp nhận các đối số từ dòng lệnh
- Xuất ra dòng lệnh bằng Node
- Chấp nhận đầu vào từ dòng lệnh trong Node
- Gỡ cài đặt gói npm với `` npm gỡ cài đặt ''
- gói npm toàn cầu hoặc cục bộ
- npm phụ thuộc và devDependencies
- Vòng lặp sự kiện Node.js
- Hiểu process.nextTick ()
- Hiểu setIm Instant ()
- Bộ phát sự kiện nút
- Xây dựng một máy chủ HTTP
- Thực hiện các yêu cầu HTTP với Node
- Mô-đun Node fs
- Yêu cầu HTTP trong Node bằng Axios
- Đọc tệp bằng Node
- Đường dẫn tệp nút
- Viết tệp bằng Node
- Số liệu thống kê về tệp nút
- Làm việc với bộ mô tả tệp trong Node
- Làm việc với các thư mục trong Node
- Mô-đun đường dẫn nút
- Mô-đun Node http
- Sử dụng WebSockets với Node.js
- Những điều cơ bản về cách làm việc với MySQL và Node
- Xử lý lỗi trong Node.js
- Hướng dẫn Pug
- Cách đọc các biến môi trường từ Node.js
- Cách thoát khỏi chương trình Node.js
- Mô-đun hệ điều hành Node
- Mô-đun sự kiện Node
- Nút, sự khác biệt giữa phát triển và sản xuất
- Cách kiểm tra xem tệp có tồn tại trong Node.js hay không
- Cách tạo tệp trống trong Node.js
- Cách xóa tệp bằng Node.js
- Cách lấy ngày cập nhật cuối cùng của tệp bằng Node.js
- Cách xác định một ngày có phải là hôm nay trong JavaScript hay không
- Cách ghi một đối tượng JSON vào tệp trong Node.js
- Tại sao bạn nên sử dụng Node.js trong dự án tiếp theo của mình?
- Chạy một máy chủ web từ bất kỳ thư mục nào
- Cách sử dụng MongoDB với Node.js
- Sử dụng Công cụ dành cho nhà phát triển của Chrome để gỡ lỗi ứng dụng Node.js
- Pnpm là gì?
- Danh sách tùy chọn Node.js Runtime v8
- Cách khắc phục lỗi "Thiếu quyền ghi" khi sử dụng npm
- Cách bật Mô-đun ES trong Node.js
- Cách sinh ra một quy trình con với Node.js
- Cách lấy cả nội dung được phân tích cú pháp và nội dung thô trong Express
- Cách xử lý tải lên tệp trong Node.js
- Sự phụ thuộc ngang hàng trong một mô-đun Node là gì?
- Cách ghi tệp CSV với Node.js
- Cách đọc tệp CSV với Node.js
- Mô-đun lõi Node
- Tăng số lượng nhiều thư mục cùng một lúc bằng Node.js
- Cách in canvas thành URL dữ liệu
- Cách tạo và lưu hình ảnh với Node.js và Canvas
- Cách tải xuống hình ảnh bằng Node.js
- Cách đổi tên hàng loạt tệp trong Node.js
- Cách lấy tên của tất cả các tệp trong một thư mục trong Node
- Cách sử dụng các lời hứa và chờ đợi với các hàm dựa trên cuộc gọi lại của Node.js
- Cách kiểm tra một gói npm cục bộ
- Cách kiểm tra phiên bản Node.js hiện tại khi chạy
- Cách sử dụng Sequelize để tương tác với PostgreSQL
- Cung cấp trang HTML bằng Node.js
- Cách giải quyết lỗi `use.pump không phải là hàm` trong Node.js