使用Node輸出到命令行
如何使用Node將信息打印到命令行控制台,從基本的console.log到更複雜的場景。
使用console模組進行基本輸出
Node提供了console
模組,該模組可以提供與命令行交互的各種非常有用的方法。它基本上與在瀏覽器中找到的console
對象相同。
最基本和最常用的方法是console.log()
,它將將您傳遞給它的字符串打印到控制台。如果您傳遞一個對象,它將將它呈現為字符串。您可以將多個變量傳遞給console.log
,例如:
1 | const x = 'x' |
Node將打印兩個值。
您還可以通過傳遞變量和格式化符號來格式化漂亮的短語。例如:
1 | console.log('我的 %s 有 %d 歲', '貓', 2) |
%s
將變量格式化為字符串%d
或%i
將變量格式化為整數%f
將變量格式化為浮點數%O
用於打印對象表示
示例:
1 | console.log('%O', Number) |
清除控制台
console.clear()
可以清除控制台(行為可能取決於所使用的控制台)。
元素計數
console.count()
是一個方便的方法。
看一下下面的代碼:
1 | const x = 1 |
count
會計算字符串被打印的次數,並在其旁邊打印計數:
您可以只計算蘋果和柳橙的數量:
1 | const oranges = ['橙子', '橙子'] |
打印堆棧跟踪
在某些情況下,打印函數的調用堆棧跟踪可能很有用,也許是為了回答“你是如何到達代碼的這一部分的呢?”這個問題。
您可以使用console.trace()
來實現:
1 | const function2 = () => console.trace() |
這將打印出堆棧跟踪信息。在Node REPL中嘗試此操作時,會打印以下內容:
1 | Trace: |
計算耗時
您可以使用time()
和timeEnd()
輕鬆計算函數運行的時間:
1 | const doSomething = () => console.log('測試') |
stdout和stderr
正如我們所見,console.log
很適合在控制台中打印消息。這就是所謂的標準輸出,或stdout
。console.error
則將消息打印到stderr
流,它不會顯示在控制台中,但會顯示在錯誤日誌中。
為輸出添加顏色
您可以使用轉義序列將文本的輸出顏色化,轉義序列是一組標識顏色的字符。例如:
1 | console.log('\x1b[33m%s\x1b[0m', 'hi!') |
您可以在Node REPL中嘗試,它將以黃色打印出hi!
。
但是,這種方法是較低級的方法。為控制台輸出添加顏色的最簡單方法是使用庫。Chalk就是這樣一個庫,除了顏色之外,它還有其他的樣式設置,如加粗、斜體或下劃線。
您需要使用npm install chalk
來安裝它,然後您就可以使用它了:
1 | const chalk = require('chalk') |
使用chalk.yellow
要比記住轉義碼方便得多,而且代碼更易讀。請檢查我上面發布的項目鏈接,了解更多使用示例。
創建進度條
Progress 是一個非常好用的包,可以在控制台中創建進度條。使用 npm install progress
來安裝它。
以下代碼段可以創建一個有10個步驟的進度條,每100毫秒完成一個步驟。當進度條完成時,我們清除定時器:
1 | const ProgressBar = require('progress') |
tags: [“Node.js”, “命令行”, “console模組”, “stdout”, “stderr”, “顏色輸出”, “進度條”]