2015-04-22 2 views
5

Я пытаюсь найти лучший метод для разделения маршрутов в 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; 

Так как я сказал выше, какой из них является предпочтительным, и почему?

ответ

11

Метод три - использовать оба

Вы должны воспользоваться как маршрутизатор введен в 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 }); 
}; 
+0

Спасибо за ваш ответ, делает этот метод имеет проблемы с производительностью, связанные с ним? –

+0

@AshleyB Этого не должно быть, поскольку 'app.get' и т. Д. Все равно использует маршрутизатор. –

+0

Спасибо, мне было просто любопытно, как поток запросов будет выглядеть примерно так: app.js -> router/index.js -> router/users.js -> controllers/users.js -> views/users/user.hjs Это не похоже на самый эффективный способ делать вещи. Но я дам это назад, ура! –