Expressアプリには次のようなルートがあります:
app.get('/:id', function (request, response) {
…
});
IDは常に数字になります。ただし、現時点では、このルートは/login
などの他のものと一致しています。
私はこれから2つのことをしたいと思う:
/login
との衝突など)。これはできますか?
マリウスの答えを拡張して、正規表現とパラメーター名を提供できます。
app.get('/:id(\\d+)/', function (req, res){
// req.params.id is now defined here for you
});
はい、チェックアウト http://expressjs.com/guide/routing.html および https://www.npmjs.com/package/path-to-regexp (どのエクスプレス使用)。動作する可能性のあるテストされていないバージョンは次のとおりです。
app.get(/^(\d+)$/, function (request, response) {
var id = request.params[0];
...
});
次を使用できます。
// /12345
app.get(/\/([^\/]+)\/?/, function(req, res){
var id = req.params[0];
// do something
});
またはこれ:
// /post/12345
app.get(/\/post\/([^\/]+)\/?/, function(req, res){
var id = req.params[0];
// do something
});