0
// ex: http://example.com/john_smith
app.get('/^(a-z)_(0-9)', function(req, res) {
    res.send('user'); 
});

//  ex: http://example.com/john_smith/messages/1987234
app.get('/^(a-z)_(0-9)/messages/:id', function(req, res) {
    res.send('message');
});

ユーザー名を url 変数として node.js に渡したいアプリ用に上記のコードを書きました。PHPで。私は正規表現を書くのが得意ではないので、誰かが私を正しい軌道に乗せることができるかどうかを知りたかった. 前もって感謝します。

4

2 に答える 2

0

あなたの要件から、正規表現は必要ないようです。以下のように、ルールで aa 変数を使用するだけです。

// Grabs whatever comes after /user/ and maps it to req.params.id
app.get('/user/:id', function (req, res) {
    var userId = req.params.id;
    res.send(userId);
});

より適切に制御したい場合は、正規表現を使用できます。式から関心のあるものを取得するには、キャプチャ グループを使用します (通常、対応する括弧のセットとして表現されます)。

// Grabs the lowercase string coming after /user/ and maps it to req.params[0]
app.get(/^\/user\/([a-z]+)$/, function (req, res) {
    var userId = req.params[0];
    res.send(userId);
});

少し話題から外れていますが、express.js をよりよく理解するのに役立つ非常に優れた紹介を次に示します (ルートの仕組みを含む): http://evanhahn.com/understanding-express-js/

于 2013-07-08T14:10:58.557 に答える
0

req.params正規表現のすべてのキャプチャ グループの配列である を探しています。
キャプチャ グループは から始まり1ます。req.params[0]試合全体です。

于 2013-07-07T12:05:40.473 に答える