我还在纠结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 控制器为目标。或者,我可以单独声明每个路由,或者甚至编写一个循环,通过我的每个控制器并在初始化时声明它们。所以:
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 文件夹结构,所以代码比上面的要复杂一些。但你明白了。
我想知道两者的后果是什么以及它是否真的很重要?
谢谢!