2013-01-02 14 views

Antwort

13

Verwenden res.redirect dem Browser mitteilen zu /blog/page/1 umleiten:

app.get('/blog', function(req, res) { 
    res.redirect('/blog/page/1'); 
}); 

app.get('/blog/page/:page', function(req, res) { 
    //logic 
}); 

stellen Sie einen gemeinsamen Route-Handler und standardmäßig auf Seite 1, wenn die page param nicht bestanden:

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); 
+7

Dies wird eine Veränderung der Ursache Browser-URL Sie können stattdessen connect-modrewrite verwenden, um die URL neu zu schreiben. https://github.com/tinganho/connect-modrewrite?source=c – einstein

+1

Korrigieren Sie @einstein, aber es ist nicht notwendig, wenn Sie Express-Routen verwenden. Sie können Regex verwenden, um ein Array zu finden oder sogar zu übergeben, siehe hier: http://stackoverflow.com/questions/15350025/express-js-single-routing-handler-for-multiple-routes-in-a-single- Zeile – TMPilot

+2

downvoted, da dies einen weiteren Umlauf erfordert. Keine gute Lösung. –

Verwandte Themen