その時何を思ってこの方法を採用したのかは忘れてしまったが、今まではグローバル変数を用いて解決していた。
上記のGistでのパターン2である。
1global.__base = __dirname + '/';
2var Article = require(__base + 'app/models/article');
そーいえばnpmにこの問題を解決する機能が導入されてたっけ、と思い試してみる。
しかしこの方法、ちょろっとした機能を追加するには大げさすぎて難儀に感じる。
僕の使い方ではデメリットのほうが勝る気が…。
他の手法を調べてみてもなかなかしっくりこない。
改めて難しい問題だと感じる。
これまでの方法をテンプレートリテラルで書き直して使い続ける結論に至った。
1global.__base = __dirname + '/';
2const Article = require(`${__base}app/models/article`);
いつの日か光あれ!