作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
person
集合中我的 MongoDB 键是这样的:
TWITTER/12345678
GOOGLE/34567890
TWITTER/45678901
...
我这样定义 getPersonByKey
路由:
router.route('/getPersonByKey/:providerKey/:personKey').
get(function(req, res) { // get person by key
var key = req.params.providerKey + '/' + req.params.personKey;
// ...
}
);
当然我更希望能够写出这样的东西:
router.route('/getPersonByKey/:key').
get(function(req, res) { // get person by key
var key = req.params.key;
// ...
}
);
但这不起作用,因为 GET http://localhost/getPersonByKey/TWITTER/12345678
当然会导致 404,因为带有斜杠的参数被解释为两个不同的参数。 ..有什么想法吗?
最佳答案
express 内部使用path-to-regexp进行路径匹配。
如 documentation 中所述,您可以通过在参数本身后添加用括号括起来的正则表达式来使用“自定义匹配参数”。
您可以使用以下路径获取您需要的结果:
router.route('/getPersonByKey/:key([^/]+/[^/]+)').
get(function(req, res) { // get person by key
var key = req.params.key;
// ...
}
);
关于javascript - 如何使用包含斜杠字符的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34571784/
我是一名优秀的程序员,十分优秀!