Express アプリに次のようなルートがあります。
app.get('/:id', function (request, response) {
…
});
ID は常に数字です。ただし、現時点では、このルートは などの他のものと一致してい/login
ます。
私はこれから2つのことを望んでいると思います:
- ID が数値の場合にのみこのルートを使用し、
- その特定のパラメーターのルートが既に定義されていない場合のみ ( との衝突など
/login
)。
これはできますか?
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
});