以下两种管理route的方式,你是用哪个方式管理的?
发布于 1年前 作者 think2011 641 次浏览

我注意到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

回到顶部