快速 - 路线分离方法

时间:2015-04-22 11:31:58

标签: javascript node.js express routes

我正在尝试找到在Express中分隔路由的最佳方法。我知道有两种方法,我想知道它们之间有什么区别,哪一种被认为是“最佳实践”(以及为什么)。

方法一 - 出口

很多例子似乎都使用这种方法

app.js

var user = require('./routes/users');
app.get('/users', user.list);

路由/ users.js

exports.list = function(req, res){
  res.render('users', { title: 'Users', users: users });
};

方法二 -

此方法用于快速指南

app.js

var users = require('./routes/users');
app.use('/users', users);

路由/ users.js

var express = require('express');
var router = express.Router();

router.get('/', function(req, res){
  res.render('users', { title: 'Users', users: users });
});

module.exports = router;

正如我上面所说,哪一个是首选方法,为什么?

1 个答案:

答案 0 :(得分:13)

方法三 - 同时使用

您应该充分利用Express 4中引入的路由器和控制器的模块化。

<强> app.js

var routes= require('./routes');
app.use('/', routes);

<强>路由/ index.js

var express = require('express');
var users = require('../routes/users');
var router = express.Router();

router.use('/users', users);

module.exports = router;

<强>路由/ users.js

var express = require('express');
var users = require('../controllers/users');
var router = express.Router();

router.get('/', users.list);

module.exports = router;

<强>控制器/ users.js

exports.list = function(req, res){
  res.render('users', { title: 'Users', users: users });
};