タグ

ブックマーク / memo.yomukaku.net (2)

  • Node.jsのChildProcessのexecメソッドとspawnメソッドの違いと使いどころ - memo.yomukaku.net

    Node.jsで外部コマンドを実行する際などに使うChildProcessクラスのオブジェクトでは、execメソッドやspawnメソッドを使って子プロセスを実行することができます。 ChildProcessを使用して外部コマンドを実行する方法については「Node.jsで外部のコマンドを実行する方法: child_processを使う」を参考にしてください。 ところで、ChildProcessのexecメソッドもspawnメソッドは、子プロセスを実行するという点で機能は同じですが、なにが異なるのか、何を基準に使いわけるべきか? を考えてみます。ChildProcessのexecとspawnの違い ChildProcessのexecとspawnの最も大きな違いは、エラーなしに終了した場合に得られるstdoutで得られるオブジェクトのクラスの違いです。 次のように異なります。 execのstdo

  • Node.jsのためのasync必修パターン(1): 同期パターン

    node.jsはnon-blocking処理を行うため、書き手の意図しない順序で処理が実行されることがあります。それでは困ることもあるため同期をとって処理を行うパターンについて書きます。例えばA、B、C、Dという処理があり、A、B、Cの3つが終わってからDが行われることを保証したい場合の必須のパターンです。 A、B、Cという3つの処理では、それぞれDBに問い合わせを行い、Dという処理では3つのDB問い合わせの結果を使って集計の処理を行いたいような場面を考えてみます。a(); b(); c(); d();上のように普通に書くと、node.jsでは折々の状況に応じてaからdまでの処理を非同期に実行します。dが一番最初に実行されるかもしれません。困ります。そこで、A、B、Cの3つの処理が3つとも完了した後にDが実行されるようにするパターンを書きます。// sync.js var wait = f

  • 1