Express.js – 过滤URL中的数字和string
我想知道是否有可能检查一个Express.js URL查询的特定格式(Regexexpression式),在查询本身(无需调用callback)。
具体来说,我想执行一个不同的操作,具体取决于查询URL是string还是数字(如用户标识和用户名):
app.get('/:int', function(req, res){ // Get user info based on the user id. } app.get('/:string', function(req, res){ // Get user info based on the user name. }
我可以在app.get
的第一个参数中过滤数字,还是不可能,除了在callback中进行testing:
/(\d)+/.test(req.params.int) /(\w)+/.test(req.params.string)
您可以使用括号为命名参数指定模式:
app.get('/:int(\\d+)', function(req, res){ // Get user info based on the user id. } app.get('/:string(\\w+)', function(req, res){ // Get user info based on the user name. }
express路由器也接受regexp作为第一个参数。
app.get(/(\d+)/, function(req, res, next) {}) app.get(/(\w+)/, function(req, res, next) {})