Node.js
Express

Node.js & Expressで最初にいれるべきモジュール

More than 5 years have passed since last update.

最近, 仕事やプライベートで, ちょっとしたプログラムを書くときは, Node.jsを使う頻度が増えてきており, その実行結果をブラウザ上で見れるようにするためにExpressを使うことが多くなってきたということもあり, 一度, Node.js & Expressでよく使っているモジュールを簡単にまとめてみます.

ただ, まだまとめ途中であり, 増えたり減ったりすると思います. 他にもおすすめのモジュールとかあったら教えていただければと思います.

config

npm install config

アプリケーションの設定情報を管理するためのモジュール. ルートの config フォルダを作成し, その中に default.json を作る. default.jsonの中身が, configモジュールの設定情報を保持するファイル. 開発環境用の設定ファイル, 本番環境用の設定ファイル, などのように管理できる.

log4js

npm install log4js

実行ログを残すためのライブラリ. 上記configモジュールの設定内に,

config.json
"log": {
  "type": "dateFile",
  "appenders": [ {
    "type": "dateFile",
    "filename": "log/logging.log",
    "pattern": "-yyyy-MM-dd"
  } ]
}

などと記述しておき, app.js内などで,

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のルーティングを含む全体をテストするためのツール.

app.js
// 末尾部分
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のような非同期型のほうがいいかもしれません.

parse.js
var d3 = require('d3');
var csv = d3.csv.parse(data_string);
console.log(csv[0]['id']);

パース後は, 1行目をヘッダ行とみなして, 各行をヘッダ行の文字列をキーとするオブジェクトの配列として帰ってくる.

その他いろいろ

まだ書ききれていません.