環境
Node.js:10.0.0
Express:4.16.0
やりたいこと
処理の一部を外部ファイルに記述することで、1つのファイル内のコード数を減らしたい
※Expressの勉強中、受け付けるURLパターンが増えてきたときに、
アプリごとに処理を記述出来たらよいなと思ったのがきっかけ
外部ファイルを呼び出す側
main.js
var express = require('express'),
app = express();
var sub = require('./sub'); // ①
app.get('/', sub.index); // ②
app.listen(3000);
console.log('server starting -> localhost:3000');
ポイント
①外部ファイルを読込む
「require('外部ファイル')」の形式で読み込むことができる。
同じ階層のファイルに対しては必ず「./」を付ける。
そうしないと、パッケージを探しに行ってしまう模様。
②外部ファイルで定義した関数を呼び出す。
「①で定義した変数名.関数名」の形式で呼び出せる。
Node.jsでは関数も一つのオブジェクトとして扱えるため、()は不要
※expressについてはここでは触れません。
外部ファイル
sub.js
exports.index = function(req, res){
res.send('This is INDEX.');
};
ポイント
外部から利用できるようにしたい関数は(定数に対しても同様)、
「exports.関数名 = function(引数){処理}」と記述する。