Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Node.js24.x】Object::exec()メソッドの使い方

execメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

execメソッドは、Node.jsアプリケーション内で、新しい子プロセスを生成し、指定されたコマンドをOSのシェルを介して実行するメソッドです。このメソッドは非同期で動作するため、コマンドの実行が開始されてもNode.jsのメインスレッドはブロックされず、他の処理を続行できます。コマンドの実行が完了すると、指定されたコールバック関数が呼び出され、実行結果が渡されます。

実行されたコマンドの標準出力(stdout)と標準エラー出力(stderr)は、内部的にバッファリングされ、すべて完了した時点で文字列データとしてコールバック関数の引数にまとめて提供されます。これにより、外部プログラムが生成したテキストベースの情報をNode.jsアプリケーション内で手軽に処理することが可能です。

本メソッドは、ファイルシステムの操作(例: ls, mkdir)、システムユーティリティの実行(例: grep, find)、または他の言語で書かれたスクリプトやプログラムの起動など、オペレーティングシステムレベルのコマンドをNode.jsから実行したい場合に特に有用です。例えば、ユーザーがアップロードしたファイルを圧縮する際に外部の圧縮ツールを呼び出したり、特定のシステム情報を取得したりする用途で活用できます。

ただし、コマンドをシェルを介して実行する性質上、外部からの入力値をそのままコマンドに含める場合には、セキュリティ上のリスク(コマンドインジェクション)が発生する可能性がありますので、入力値の検証やエスケープ処理を適切に行う必要があります。また、バッファリングされる出力サイズには上限が設定されており、非常に大量の出力を伴うコマンドの実行には適していません。そのような場合は、ストリームベースで出力を処理できる別のAPIの利用を検討することが推奨されます。

構文(syntax)

1const { exec } = require('node:child_process');
2
3exec('your command here', (error, stdout, stderr) => {
4  // Callback function body to handle command execution result
5});

引数(parameters)

command, options, callback

  • command: string: 実行するコマンドライン文字列
  • options: object: コマンド実行に関するオプションを指定するオブジェクト
  • callback: function: コマンド実行完了後に呼び出されるコールバック関数

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ