node.js - 多个路径同时匹配-奇怪的快速行为

标签 node.js express routing

我想知道以下表达行为是否有效:

在此示例中,发出GET请求“ GET / count”将触发/执行路由/ count和/:mail。

var express = require('express')
var app = express()

app.get('/count', function (req, res) {
  res.send('Hello World!1')
})

app.get('/:mail', function (req, res) {
  res.send('Hello World!2')
})

app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
})


触发/:mail时,输出将为:“错误:发送标头后无法设置标头。”

我的问题是:快递一次只匹配一条路线,这不是很明显吗?

最佳答案

我不认为这是正在发生的事情。相反,您尝试对一个路由执行两个功能,当第二个res.send触发时,标头已经设置好。它不会自动不调用/:mail路由上的get,因为这也与其捕获的值匹配。

关于node.js - 多个路径同时匹配-奇怪的快速行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42164997/

相关文章:

node.js - 关系多的Bookshelf如何查询数据?

Django:如何使用中间件将请求重新路由到不同的 View

asp.net-mvc - 从 ASP.NET MVC 中的相同路由 URL 路径提供图像

node.js - 使用node/express/Multer,如何 "first"检查参数?

asp.net-mvc - ASP.NET MVC 单向路由

node.js - 无法使用 stdin 读取输入

javascript - 将服务器 API 作为 brunch 应用程序的一部分构建是一种不好的做法吗?

java - 在 HANA 试用账户中使用 Node JS 模块

javascript - Node.js Controller

node.js - Mongoose findoneandUpdate 文档的多个字段