2016-12-08 3 views
0

Node.jsの同期メソッドを探しています。これはlinux headと似ています。Node.jsのunix headコマンドを同期してシミュレートするにはどうすればよいですか?

ノードで同期の処理を行うのは一般的には悪いことですが、有効なユースケースがあります。ファイルの最初の数行を読む必要があります。

+1

スタートアップ以外のnode.jsサーバーの同期I/Oの有効な使用例を確認したいと思います。 – jfriend00

答えて

0
// Returns the first few lines of the file. 
// file: the file to read. 
// lines: the number of lines to return. 
// maxBuffer: the maximum number of bytes to read from 
//   the beginning of the file. We default to 
//   1k per line requested. 
function head(file, lines, maxBuffer) { 
    lines = lines || 10; 
    maxBuffer = maxBuffer || lines * 1000; 
    var stats = fs.statSync(file); 
    var upToMax = Math.min(maxBuffer, stats.size); 
    var fileDescriptor = fs.openSync(file, 'r'); 
    var buffer = Buffer.alloc(upToMax); 
    fs.readSync(fileDescriptor, buffer, 0, upToMax, 0); 
    var lineA = buffer.toString('utf8').split(/\r?\n/); 
    lineA = lineA.slice(0, Math.min(lines, lineA.length)); 
    // might be nicer just to return the array and let the 
    // caller do whatever with it. 
    return lineA.join('\n'); 
} 
+0

また、https://www.npmjs.com/package/headを使用することもできます –

関連する問題