2015-03-03 22 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

很好的解決方案,但我有一個從路線defenition – Erik 2015-03-03 12:58:30

+0

沒有單獨的柔兒功能然後做一個。毫無疑問,這是最優雅的解決方案。 – 2015-03-03 13:04:31

+0

感謝您的回答,我認爲可以寫出像這樣的東西:'router.get(['/','/ about'],function(req,res){});' – Erik 2015-03-03 13:58:36

相關問題