Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更新查询参数Node.js_Javascript_Node.js_Express - Fatal编程技术网

Javascript 更新查询参数Node.js

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

使用Node.js/Express,我定义了一个路径,传递了一个请求和响应

我总是希望在点击此路径时包含一个种子url参数,因此我将该种子查询参数设置为0并重定向url

接下来我要做的是将该参数与每个请求/响应随机化,并根据另一个url参数的附加值更新url,在本例中为
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
   }))
}