node.jsでちょっとしたスクリプトを書いてみたよ(の断片)

高速に100万行の連番SQLを出力する必要があって、以前シェルスクリプトで書いたら遅かったし、
Luaは早いけどそんなにバリバリ書けないし、JavaScriptで書きたかったのでnode.jsで試してみたのでした。
16秒くらいで出力できたのでかなり早いほうに入るのかな。
まあ、シェルスクリプトも自分の書き方が悪かっただけで本当は早いのかもしれないけど。
環境:WindowsXP SP3 / node.js 0.6.10

ファイル名を取得

var os = require('os'),
    delimiter = (os.platform() === 'win32') ? '\\' : '/',
    scriptName1 = process.argv[1].split(delimiter).pop(),
    scriptName2 = __filename.split(delimiter).pop();

予期しないエラー(?)を捕まえる

process.on('uncaughtException', function (err) {
  console.error(err);
});

printf的関数

var util = require('util'),
    str = util.format('%d %s', 123, 'abc');
console.log('%d %s', 123, 'abc');

ファイルに出力

var fs = require('fs'),
    data = [1, 2, 3, 4, 5, 6, 7, 8, 9].join('\n');

fs.writeFile('aaa.txt', data, function (err) {
  if (err) {
    throw err;
  }
});

実行時間を出力

var timerName = 'timer';
console.time(timerName);
// 処理...
console.timeEnd(timerName);

プロセスの終了

var count = process.argv[2] || 0;

if (!count) {
  console.error('Usage: ...');
  process.exit(1);
}

// 処理...

process.exit();  // 0