6
我正在使用Express.js中的基本博客。說我有航線結構是這樣的:使用路線作爲Express.js中另一條路線的別名
/blog/page/:page
我也想了/blog
路由實質上是/blog/page/1
的別名。我如何在Express中輕鬆處理?
所有路由都定義如下這樣:
app.get('/path', function(req, res) {
//logic
});
我正在使用Express.js中的基本博客。說我有航線結構是這樣的:使用路線作爲Express.js中另一條路線的別名
/blog/page/:page
我也想了/blog
路由實質上是/blog/page/1
的別名。我如何在Express中輕鬆處理?
所有路由都定義如下這樣:
app.get('/path', function(req, res) {
//logic
});
使用res.redirect
告訴瀏覽器重定向到/blog/page/1
:
app.get('/blog', function(req, res) {
res.redirect('/blog/page/1');
});
app.get('/blog/page/:page', function(req, res) {
//logic
});
使用,如果page
PARAM共享路由處理和默認頁1未通過:
function blogPageHandler(req, res) {
var page = req.params.page || 1;
//logic
}
// Define separate routes
app.get('/blog/page/:page', blogPageHandler);
app.get('/', blogPage);
// or combined, by passing an array
app.get(['/', '/blog/page/:page'], blogPageHandler);
// or using optional regex matching (this is not recommended)
app.get('/:_(blog/)?:_(page/)?:page([0-9]+)?', blogPageHandler);
這將導致瀏覽器的網址。你可以使用connect-modrewrite來改寫url。 https://github.com/tinganho/connect-modrewrite?source=c – einstein
正確@einstein然而,使用快速路線時沒有必要。你可以使用正則表達式來匹配,甚至傳遞一個數組,請看這裏:http://stackoverflow.com/questions/15350025/express-js-single-routing-handler-for-multiple-routes-in-a-single-行 – TMPilot
downvoted因爲這需要另一次往返。不是一個好的解決方案 –