宿題:
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]);
});
整数範囲を簡単に処理し、分割や解析、検証なしで配列を直接提供します。
質問 :
通常、サーバーは www.example.com/path と www.example.com//path を同じ方法で受け入れますが、node.js ではそれを行うために 2 つの別個の app.get チェックを記述する必要があります。/path、//path、///pathが同じ応答を返すように、1回のチェックでこれを達成するにはどうすればよいですか
/: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!');
「?」の後に同じように(宿題部分から)範囲パラメーターを呼び出すことはできますか?お気に入り
app.get('/range?range=:range',...
URL www.example.com/range?range=123-234