CNode

以下两种管理route的方式,你是用哪个方式管理的?

Tthink2011发布于12 年前最后回复12 年前4 回复4510 浏览0 收藏

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

K
kiddkai#1·12 年前

第一种方式,然后每一个部分的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

A
alsotang#2·12 年前

当你有五六十个 route 的时候,第二种方便管理。

先用着第一种就好了,这个五分钟就重构完了。

R
rapidhere#3·12 年前

貌似express的项目上还提供了很多router的例子

参与回复
登录后即可参与回复。登录