expressで、テスト用にapp
インスタンスだけ取得したいけど、app.listen
を同じファイルに書きたいって!!いう状況に陥った。
(app.js
とbin/www
みたいに分けるのがベストっぽいけど、あまり好きじゃない。)
require.main
とmodule
で判別
require
され、モジュールとして動いてるときは、require.main !== module
単体で起動されているときは、require.main === module
となる。
コード化
sample.js
if (require.main === module) {
console.log('直接起動されたよ!');
} else {
console.log('requireされて、モジュールとして動いてるよ!');
}