nodeで名前空間みたいなことをやりたい

expressでよくアプリをつくるが、多層化するにつれ他のファイルを呼び出す際の

require('../../../piyo');

みたいなやつが気になる。

http://nodejs.jp/nodejs.org_ja/docs/v0.6/api/modules.html を見ると

'/' や './' が先頭になければ、モジュールは "コアモジュール" であるかもしくは node_modules フォルダから読み込まれることになります。

らしい。他にも色々書いてあったがよく分からなかったのでこれを活用した。

node_modules以下にルートフォルダを置くだけでよく、"hoge"というアプリならば

hoge/node_modules

とフォルダを作ってその下にappとtestフォルダを作る。

app, testという名前のnpmライブラリを入れてなければ

require('app/service/piyo');
require('test/service/piyo');

みたいに読むことができる。
他に正しいやり方がありそうだが、あまりに簡単なのでこれで運用している。