快递4x api文档声称您可以将正则表达式作为第二个参数传递给router.param验证参数.
该方法现在可用于有效验证参数(并可选择解析它们以提供捕获组)
然后提供以下示例.
// validation rule for id: should be one or more digits
router.param('id', /^\d+$/);
router.get('/user/:id', function(req, res) {
res.send('user ' + req.params.id);
});
// validation rule for range: should start with one more alphanumeric characters, followed by two dots, and end with one more alphanumeric characters
router.param('range', /^(\w+)\.\.(\w+)?$/);
router.get('/range/:range', function(req, res) {
var range = req.params.range;
res.send('from ' + range[1] + ' to ' + range[2]);
});
Run Code Online (Sandbox Code Playgroud)
但是,这实际上似乎没有用.深入探讨,看起来快速代码实际上并不支持文档声称的内容.事实上,传递函数以外的任何东西都会让你得到一个整洁的invalid param() call例外.