1

宿題:
node.js での URL 処理について少し知っています

app.param('id', /^\d+$/);
app.get('/user/:id', function(req, res){
    res.send('user ' + req.params.id);
});

/user/1、/user/2 ...つまり id を整数としてのみ受け入れます

app.get('/:type(discussion|page)/:id', ...)  

ディスカッションまたはページの値を持つタイプのみを受け入れます

app.param('range', /^(\d+)\-(\d+)?$/);
app.get('/range/range=:range', function(req, res){
var range = req.params.range;
    res.send('from ' + range[1] + ' to ' + range[2]);
});

整数範囲を簡単に処理し、分割や解析、検証なしで配列を直接提供します。

質問 :

  1. 通常、サーバーは www.example.com/path と www.example.com//path を同じ方法で受け入れますが、node.js ではそれを行うために 2 つの別個の app.get チェックを記述する必要があります。/path、//path、///pathが同じ応答を返すように、1回のチェックでこれを達成するにはどうすればよいですか

  2. /:path を検索する 1 つの URL があり、パスは辞書にリストされている値を取ることができます

    var dict={ 
        "a":"You called a", 
        "b": "b is second", 
        "c": "cats are all over internet"
    }
    app.get('/:charc',function(req,res){ 
       res.send(dict[charc]);
    });
    

    if else 条件を付けずに、アプリを a、b、c のみを受け入れるように制限するにはどうすればよいですか。現在私がやっている

    if (typeof dict[charc] == 'undefined') res.send(404, 'Sorry, we cannot find that!');
    
  3. 「?」の後に同じように(宿題部分から)範囲パラメーターを呼び出すことはできますか?お気に入り

    app.get('/range?range=:range',...
    

    URL www.example.com/range?range=123-234

4

2 に答える 2