私はまだNodeに頭を悩ませていますが、非常に簡単な質問があります。人々がルートとすべてのロジックを単一のapp.jsファイルで宣言している(またはサブファイルに分割している)ノードの例がたくさんあります。
私の質問は基本的に、すべてのルート宣言をアプリに保持するか、ファイル構造にマップする一般的なルートをブートストラップする方がよいかということです。これは原始的な質問のように思えるかもしれませんが、私の目標は、ノード内で最も効率的なものを把握することです。
現在、Restifyを使用してAPIハンドラーを構築していますが、Expressを使用する別のアプリがあります(したがって、この質問は両方の質問に答える可能性があります)。
私のルートでは、次のように単一ルートのブートストラップを宣言できます。
app.all('/api/:package/:controller', function(request, response) {
var controller = require(
'../' + request.params.package + '/api/' + request.params.controller
);
controller.index(request, response);
response.end();
});
これは基本的にAPIからのすべての呼び出しを受け入れ、適切なAPIコントローラーを対象としています。または、各ルートを個別に宣言することも、各コントローラーを通過してinitで宣言するループを作成することもできます。それで:
for (var i in packages.controllers) {
app.all('api/' + package + '/' + controllers[i].name, function(request, response) {
var controller = require(
'../' + request.params.package + '/api/' + request.params.controller
);
controller.index(request, response);
}
}
packages.controllersは、可能なすべてのコントローラーの配列です。上記のコードは正確ではないことに注意してください。私はHMVCフォルダー構造を持っているため、コードは上記よりも少し複雑です。しかし、あなたは要点を理解します。
どちらの結果がどうなるのか、そしてそれが本当に重要なのかどうか疑問に思っています。
ありがとう!