ノードを使用してコマンドラインに出力する

基本的なconsole.logからより複雑なシナリオまで、Nodeを使用してコマンドラインコンソールに出力する方法

コンソールモジュールを使用した基本出力

ノードはconsoleモジュールこれは、コマンドラインと対話するための非常に便利な方法を数多く提供します。

基本的にはconsoleブラウザで見つけたオブジェクト。

最も基本的で最も使用される方法はconsole.log()、渡した文字列をコンソールに出力します。

オブジェクトを渡すと、文字列としてレンダリングされます。

複数の変数をに渡すことができますconsole.log、 例えば:

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

とノードは両方を印刷します。

変数とフォーマット指定子を渡すことで、きれいなフレーズをフォーマットすることもできます。

例えば:

console.log('My %s has %d years', 'cat', 2)
  • %s変数を文字列としてフォーマットします
  • %dまたは%i変数を整数としてフォーマットします
  • %f変数を浮動小数点数としてフォーマットします
  • %Oオブジェクト表現を印刷するために使用されます

例:

console.log('%O', Number)

コンソールをクリアします

console.clear()コンソールをクリアします(動作は使用するコンソールによって異なる場合があります)

要素を数える

console.count()便利な方法です。

このコードを取る:

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?'
)

何が起こるかというと、countは文字列が出力された回数をカウントし、その横にカウントを出力します。

あなたはただリンゴとオレンジを数えることができます:

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

関数のコールスタックトレースを印刷すると、質問に答えるのに役立つ場合があります。コードのその部分にどのように到達しましたか?

あなたはを使用してそうすることができますconsole.trace()

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

これにより、スタックトレースが出力されます。これは、ノード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)

費やした時間を計算する

関数の実行にかかる時間を簡単に計算できます。time()そして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およびstderr

ご覧のとおり、console.logはコンソールでメッセージを印刷するのに最適です。これは、標準出力と呼ばれるもの、またはstdout

console.errorに印刷しますstderrストリーム。

コンソールには表示されませんが、エラーログには表示されます。

出力に色を付ける

エスケープシーケンスを使用して、コンソールでテキストの出力に色を付けることができます。エスケープシーケンスは、色を識別する文字のセットです。

例:

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

Node REPLでそれを試すことができ、印刷されますhi!黄色で。

ただし、これはこれを行うための低レベルの方法です。コンソール出力に色を付ける最も簡単な方法は、ライブラリを使用することです。チョークはそのようなライブラリであり、色付けに加えて、テキストを太字、斜体、または下線付きにするなど、他のスタイリング機能にも役立ちます。

あなたはそれをインストールしますnpm install chalk、それからあなたはそれを使うことができます:

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

使用するchalk.yellowエスケープコードを覚えようとするよりもはるかに便利であり、コードははるかに読みやすくなっています。

その他の使用例については、上記で投稿したプロジェクトリンクを確認してください。

プログレスバーを作成する

進捗コンソールにプログレスバーを作成するための素晴らしいパッケージです。を使用してインストールしますnpm install progress

このスニペットは10ステップのプログレスバーを作成し、100ミリ秒ごとに1ステップが完了します。バーが完了すると、間隔をクリアします。

const ProgressBar = require('progress')

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

私の無料ダウンロードNode.jsハンドブック


その他のノードチュートリアル: