2013-08-20 55 views
2

我需要重寫這個URL與節點:重寫PHP網址爲Node.js的

/single.php?articleID=123 

這樣:

/article/123 

這是因爲我公司與已經打印出來的QR碼的工作舊軟件的URL。現在他們的軟件在Node中被重寫了,所以不再有QR碼了。我如何使用Node支持這個舊的URL?我試圖建立它的路線:

app.get('/single.php?articleID=:id', log.logRequest, auth.checkAuth, function (request, reponse) { 
    response.send(request.params.id); 
}); 

,但它只是迴應是:

Cannot GET /single.php?articleID=12 

任何想法?謝謝。

回答

2

快速路線僅用於路徑,但您應該能夠路由single.php並從req.query獲得articleID

app.get('/single.php', log.logRequest, auth.checkAuth, function (request, reponse) { 
    response.send(request.query.articleID); 
}); 

如果你想要求路由的查詢參數,你可以爲它創建一個自定義的中間件:

function requireArticleID(req, res, next) { 
    if ('articleID' in req.query) { 
     next(); 
    } else { 
     next('route'); 
    } 
} 

app.get('/single.php', requireArticleID, ..., function (request, reponse) { 
    // ... 
}); 

next('route')Application Routing下討論。