Javascript 更新查询参数Node.js
使用Node.js/Express,我定义了一个路径,传递了一个请求和响应 我总是希望在点击此路径时包含一个种子url参数,因此我将该种子查询参数设置为0并重定向url 接下来我要做的是将该参数与每个请求/响应随机化,并根据另一个url参数的附加值更新url,在本例中为Javascript 更新查询参数Node.js,javascript,node.js,express,Javascript,Node.js,Express,使用Node.js/Express,我定义了一个路径,传递了一个请求和响应 我总是希望在点击此路径时包含一个种子url参数,因此我将该种子查询参数设置为0并重定向url 接下来我要做的是将该参数与每个请求/响应随机化,并根据另一个url参数的附加值更新url,在本例中为random=true 默认路由应类似于localhost:3000/Default?seed=0 如果使用了random=true参数,则路由可能看起来像localhost:3000/default?seed=456&rando
random=true
默认路由应类似于localhost:3000/Default?seed=0
如果使用了random=true
参数,则路由可能看起来像localhost:3000/default?seed=456&random=true
,其中seed在每个请求中都会更新
我的代码(使用express、canvas和url模块的server.js):
我看到的情况:url似乎正在更新,我得到的结果如下:
/default?seed=115&random=true,
/默认值?seed=21457&random=true,
etc
但是,我的画布没有渲染,并且我在浏览器中遇到了太多重定向错误。localhost将您重定向了太多次。
我对Node中的重定向概念不是很了解,但如果有人能为我指出正确的方向,使这不再是一个错误,我将不胜感激。谢谢你的问题是你正在无限地重定向。当用户到达
/default
时,您将创建查询参数。。。并使用查询参数将它们重定向回/default
,然后再次更新查询参数,并将它们永远发送到/default
。你的浏览器意识到你被困在一个无限循环中,并通过“太多重定向”错误将你从中解救出来。在重定向周围需要一个中断条件
也许吧
if(!res.query){
res.redirect(url.format({ // redirect to the url with the updated seed
pathname: '/canvas',
query: req.query
}))
}
您没有中断重定向的条件。最初将
/default?seed=115&random=true
重定向到/default?seed=21457&random=true
,然后再次重定向到/default?seed=[some_number]&random=true
seed
和random
始终存在于查询中,因此您的条件if(req.query.random==“true”&&req.query.seed)
将始终为true。因此会有多个重定向。如果random为true,并且存在seed参数重定向到同一url,且random=true,seed=某个随机数。。。如果random为true,并且存在种子参数重定向到random=true和seed=some随机数的相同url…如果random为true,并且存在种子参数重定向到random=true和seed=some随机数的相同url…如果random为true,并且存在种子参数重定向到random=true和seed=some随机数的相同url…如果random为true,并且存在种子参数重定向到同一url,random=true,seed=some random number。。。(这将永远持续下去):facepalm:谢谢大家
if(!res.query){
res.redirect(url.format({ // redirect to the url with the updated seed
pathname: '/canvas',
query: req.query
}))
}