router.METHOD(path, [callback, ...] callback)

中英双语

router.METHOD() 方法在 Express 中提供路由功能,其中 METHOD 是 HTTP 方法之一,例如 GET、PUT、POST 等,小写。因此,实际的方法是 router.get()router.post()router.put() 等等。

如果 router.get() 之前的路径没有调用 router.head(),则除了 GET 方法之外,还会为 HTTP HEAD 方法自动调用 router.get() 函数。

您可以提供多个回调,并且所有回调都被平等对待,并且表现得像中间件,除了这些回调可能会调用 next('route') 以绕过剩余的路由回调。您可以使用此机制对路由执行前置条件,然后在没有理由继续匹配路由时将控制权传递给后续路由。

以下片段说明了可能的最简单的路由定义。Express 将路径字符串转换为正则表达式,在内部用于匹配传入的请求。执行这些匹配时不考虑查询字符串,例如 "GET /" 将匹配以下路由,"GET /?name=tobi" 也是如此。

router.get('/', function (req, res) {
  res.send('hello world')
})

您还可以使用正则表达式——如果您有非常具体的约束,则很有用,例如以下将匹配 "GET /commits/71dbb9c" 和 "GET /commits/71dbb9c..4c084f9"。

router.get(/^\/commits\/(\w+)(?:\.\.(\w+))?$/, function (req, res) {
  var from = req.params[0]
  var to = req.params[1] || 'HEAD'
  res.send('commit range ' + from + '..' + to)
})