以下两种管理route的方式,你是用哪个方式管理的?
我注意到express 生成的默认app.js中的route部分是这样写的
var app = express();
var routes = require('routes');
// 路由请求链接在这里处理,路由处理事件在routes文件里处理
app.get('/',routes.index);
但是又有些是这样写的
var app = express();
var routes = require('routes');
// 把app传入到routes文件里,routes一并处理请求链接和对应事件
routes(app);
我个人比较认同第二种方式,认为界限划分明确,会方便管理,但是不明白express默认是第一种方式,而且很多人用的也是第一种方式,
1 你用的是哪种方式? 2 为什么你选择这种方式?
4 回复
当你有五六十个 route 的时候,第二种方便管理。
先用着第一种就好了,这个五分钟就重构完了。
貌似express的项目上还提供了很多router的例子
真的耶!
第一种方式,然后每一个部分的route创建一个 app,然后让一个总的 app 吧这些 app 当作中间件use起来就好了:
subapp
var app = module.exports = express();
var ctrl = require('./bleh');
// 路由请求链接在这里处理,路由处理事件在routes文件里处理
app.get('/bleh',ctrl.all);
subapp2
var app = module.exports = express();
var ctrl = require('./bla');
// 路由请求链接在这里处理,路由处理事件在routes文件里处理
app.get('/bla',ctrl.all);
mainapp
var blehapp = require('./blehapp');
var blaapp = require('./blaapp');
var app = express();
app.use(blehapp);
app.use(blaapp);
这样每一个app就对应各自的路由啦 :D