最近, 仕事やプライベートで, ちょっとしたプログラムを書くときは, Node.jsを使う頻度が増えてきており, その実行結果をブラウザ上で見れるようにするためにExpressを使うことが多くなってきたということもあり, 一度, Node.js & Expressでよく使っているモジュールを簡単にまとめてみます.
ただ, まだまとめ途中であり, 増えたり減ったりすると思います. 他にもおすすめのモジュールとかあったら教えていただければと思います.
config
npm install config
アプリケーションの設定情報を管理するためのモジュール. ルートの config フォルダを作成し, その中に default.json を作る. default.jsonの中身が, configモジュールの設定情報を保持するファイル. 開発環境用の設定ファイル, 本番環境用の設定ファイル, などのように管理できる.
log4js
npm install log4js
実行ログを残すためのライブラリ. 上記configモジュールの設定内に,
"log": {
"type": "dateFile",
"appenders": [ {
"type": "dateFile",
"filename": "log/logging.log",
"pattern": "-yyyy-MM-dd"
} ]
}
などと記述しておき, app.js内などで,
var log4js = require('log4js');
log4js.configure({"appenders": config.log.appenders});
var logger = log4js.getLogger(config.log.type);
logger.info('Logging start. ');
といった感じで使っている.
moment
npm install moment
日付情報を扱うためのライブラリ. 機能が豊富で使いやすい, かつ使う可能性が高いのでとりあえず入れておく系.
mocha, should
npm install mocha
npm install should
JavaScript用の自動テストフレームワーク.
supertest
npm install supertest
Expressのルーティングを含む全体をテストするためのツール.
// 末尾部分
module.exports = app;
if (!module.parent) {
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
}
d3
npm install d3
CSVのパース処理を行ってくれるライブラリ. CSVパーサーには他に, ya-csv というライブラリもあるが, 自分的には d3 のほうがおススメ. ya-csvの場合, 行ごとにパースを行い行ごとにコールバック関数が呼び出されるが, d3は一括でパースを行ってくれ, 非同期ではない点が気に入っています.
データ量が多いCSVファイルをパースするのであれば, ya-csvのような非同期型のほうがいいかもしれません.
var d3 = require('d3');
var csv = d3.csv.parse(data_string);
console.log(csv[0]['id']);
パース後は, 1行目をヘッダ行とみなして, 各行をヘッダ行の文字列をキーとするオブジェクトの配列として帰ってくる.
その他いろいろ
まだ書ききれていません.