2015-03-03 4 views
0

У меня есть следующий:Как использовать один вид для нескольких маршрутизаторов?

var router = express.Router(); 

router.get('/', function(req, res) { 
    res.render('layout.jade'); 
}); 

router.get('/about', function(req, res) { 
    res.render('layout.jade'); 
}); 

Как видно из приведенной выше коды я использую одного layout.jade для двух маршрутов. Как объединить его с определением одного маршрута для удаления повторяющегося кода? Что-то вроде следующего:

router.get('/|/about', function(req, res) { 
    res.render('layout.jade'); 
}); 

ответ

1

Я бы сохранил маршруты отдельно. Либо перенаправляйтесь на другой маршрут, либо комбинируйте обратный вызов.

var router = express.Router(); 

router.get('/', index); 

router.get('/about', index); 

function index(req, res) { 
    res.render('layout.jade'); 
} 

Если вы действительно должны это сделать, вы можете использовать регулярное выражение.

router.get(/\/(about)?/, function(req, res) { 
    res.render('layout.jade'); 
}); 
+0

Хорошее решение, но у меня нет отдельной функции rouer от ограничения пути – Erik

+0

Затем сделайте одно. Это, без сомнения, самое элегантное решение. –

+0

Спасибо за ответ, я подумал, что можно написать что-то вроде этого: 'router.get (['/', '/ about'], function (req, res) {});' – Erik