[一个GET请求,但在express,node.js中被多个.get函数捕获
客户端仅发送了一个请求,但是多个.get函数正在捕获该请求。
这是我的代码。
const app = express()
app.get('/', (req, res) => {
console.log('home');
res.send('home');
});
app.get('/:var1', (req, res) => {
console.log('var1');
res.send('var1');
});
app.get('/:var1/:var2', (req, res) => {
console.log('var2');
res.send('var2');
});
app.listen(4000, () => {
console.log('listening in 4000')
});
我期望的是
when /:
console: home
browser: home
when /foo:
console: var1
browser: var1
when /foo/bar:
condole: var2
browser: var2
但是,实际结果是
when /:
console: home and var1
browser: home
when /foo:
console: var1 and var1
browser: var1
when /foo/bar:
condole: var2 and var1
browser: var2
如果结果是由于NonBlocking-IO造成的,为什么会有var1两次?为什么浏览器只收到一个响应?如何使用快速路由更改结果?
回答如下:以上行为是快速路由。
从设计的角度来看,您不需要3条不同的路线即可进行简单的参数更改
你可以一起去
const app = express()
app.get('/?var1=12&var2=34', (req, res) => {
console.log('home');
var params = req.query.var1.
res.send('home');
});
app.listen(4000, () => {
console.log('listening in 4000')
});
您可以通过一条路线处理所有事情
[一个GET请求,但在express,node.js中被多个.get函数捕获
客户端仅发送了一个请求,但是多个.get函数正在捕获该请求。
这是我的代码。
const app = express()
app.get('/', (req, res) => {
console.log('home');
res.send('home');
});
app.get('/:var1', (req, res) => {
console.log('var1');
res.send('var1');
});
app.get('/:var1/:var2', (req, res) => {
console.log('var2');
res.send('var2');
});
app.listen(4000, () => {
console.log('listening in 4000')
});
我期望的是
when /:
console: home
browser: home
when /foo:
console: var1
browser: var1
when /foo/bar:
condole: var2
browser: var2
但是,实际结果是
when /:
console: home and var1
browser: home
when /foo:
console: var1 and var1
browser: var1
when /foo/bar:
condole: var2 and var1
browser: var2
如果结果是由于NonBlocking-IO造成的,为什么会有var1两次?为什么浏览器只收到一个响应?如何使用快速路由更改结果?
回答如下:以上行为是快速路由。
从设计的角度来看,您不需要3条不同的路线即可进行简单的参数更改
你可以一起去
const app = express()
app.get('/?var1=12&var2=34', (req, res) => {
console.log('home');
var params = req.query.var1.
res.send('home');
});
app.listen(4000, () => {
console.log('listening in 4000')
});
您可以通过一条路线处理所有事情