tail
util/tailモジュールは、単一ファイルをtail -Fのように追跡する、ポーリング方式のtailerを提供します。
呼び出し元がsetInterval()でpoll()を定期的に呼び出す方式を前提に設計されています。
次の形式で使用できます。
require('util/tail')
tail.create()
tailerのインスタンスを作成します。
構文
tail.create(path, options)パラメーター
pathString: 追跡するファイルのパスoptionsObject:fromStartBoolean(既定値:false)false: 作成時点のファイル末尾から追跡true: 作成時点のファイル先頭から読み取り
返されるオブジェクト
| メソッド/フィールド | 型 | 説明 |
|---|---|---|
path | String | 作成時に指定したパス |
poll(callback?) | Function | 新しい行を読み取り、String[]で返す |
close() | Function | ファイルハンドルを閉じてtailerを終了 |
poll(callback?)の動作:
- 戻り値: 新たに検出した行の配列(
String[]) callbackを渡すと、同じ配列をコールバック引数にも渡す- 読み取る新しい行がなければ空配列を返す
- ポーリング時にファイルの切り詰め・ローテーションを反映
基本的な使用例
| |
SSEアダプター
util/tail/sseは、tailの結果をSSE形式で出力するアダプターです。
require('util/tail/sse')require('util/tail').sse
tail/sse.create()
構文
tailSSE.create(path, options)パラメーター
pathString: 追跡するファイルのパスoptionsObject:fromStartBoolean(既定値:false)eventString(既定値: 空文字列)retryMsNumber(省略可能)writeFunction(省略可能)- 出力関数を省略すると
process.stdout.write()を使用
- 出力関数を省略すると
返されるオブジェクト
| メソッド | 説明 |
|---|---|
writeHeaders() | SSEレスポンスヘッダーを出力 |
poll() | 新しい行を読み取り、event/dataフレームを出力してString[]を返す |
send(data, event?) | 任意のデータ1件をSSEフレームとして出力 |
comment(text) | SSEコメントフレーム(: ...)を出力 |
close() | 内部のtailerを終了 |
cgi-bin SSE 例
| |
動作に関する注意
- ポーリング間隔とライフサイクル(終了・クリーンアップ)は、呼び出し元が制御します。
- ファイルが存在しない場合、
poll()は空配列を返し、ファイル作成後の次のポーリングで追跡を開始します。 - ローテーションと切り詰めは、ポーリング時に検出して反映します。
最終更新日