4

Express.js URL クエリの特定の形式 (正規表現) をクエリ自体で (コールバックを入力せずに) チェックできるかどうかを知りたいです。

具体的には、クエリ URL が文字列か数字 (ユーザー ID やユーザー名など) かによって、異なるアクションを実行したいと思います。

app.get('/:int', function(req, res){
    // Get user info based on the user id.
}

app.get('/:string', function(req, res){
    // Get user info based on the user name.
}

の最初のパラメータで数値をフィルタリングできますかapp.get、それともコールバック内でテストを行う以外は不可能ですか:

/(\d)+/.test(req.params.int)
/(\w)+/.test(req.params.string)
4

2 に答える 2

17

名前付きパラメーターのパターンを括弧で指定できます。

app.get('/:int(\\d+)', function(req, res){
    // Get user info based on the user id.
}

app.get('/:string(\\w+)', function(req, res){
    // Get user info based on the user name.
}
于 2013-03-05T16:55:03.527 に答える
3

Express ルーターは、最初の引数として正規表現も受け入れます。

app.get(/(\d+)/, function(req, res, next) {})
app.get(/(\w+)/, function(req, res, next) {})
于 2013-03-05T16:49:03.003 に答える