作业:
我知道网址几件事情的node.js处理express.js + node.js中的url?接受特定的词,双斜杠多
app.param('id', /^\d+$/);
app.get('/user/:id', function(req, res){
res.send('user ' + req.params.id);
});
处理将只接受/用户/ 1 /用户/ 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中我必须写两个 独立app.get检查来做到这一点。我怎么能只 一个检查做到这一点,以便/路径,//路径,///路径给出了同样的答复
我有一个网址,看起来对/:路径和路径可以取的值 中上市字典
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]); });
我怎样才能限制应用程序只接受A,b,C没有把一个if else条件。 目前我做
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
设置路径正则表达式以接受多个/'/ +路径' – Menztrual 2013-04-08 06:41:15
关于#3,我敢肯定它不可能匹配查询字符串与表达'路由器。找不到确认这一点的来源。 – 2013-04-08 07:42:46
关于#1,如果没有更好的解决方案,像'app.use(function(req,res,next){req.url = req.url.replace(/ [\ /] +/g,'/'); next ();});'将确保没有后续路线会看到任何重复的斜线。 – 2013-04-08 07:49:36