使用Node.js / Express,我正在定义路径,传递请求和响应。
在单击此路径时,我总是想包含种子url参数,因此我将种子查询参数设置为0并重定向了url。
我接下来要做的是在每个请求/响应中随机分配该参数,并根据其他URL参数(在本例中为random=true
)的附加值来更新URL。
默认路由应类似于localhost:3000/default?seed=0
如果使用了random=true
参数,则路由看起来像localhost:3000/default?seed=456&random=true
,其中种子根据每个请求进行更新。
我的代码(使用express,canvas和url模块的server.js):
`app.get("/default", (req, res) => {
//some logic to generate random numbers for the seed parameter
let seed = Math.round(Math.ceil(Math.random() * parseInt(req.query.seed + 1) * 100))
// if we hit the path and no seed param is defined always give it zero
if(!req.query.seed) {
req.query.seed = 0;
res.redirect(url.format({ // redirect the url with the new param
pathname: '/canvas',
query: req.query
}))
}
//if we hit the path and the random param is set to true and there is a seed parameter
if(req.query.random === 'true' && req.query.seed) {
req.query.seed = seed; // use randomized seed as the new seed param value
res.redirect(url.format({ // redirect to the url with the updated seed
pathname: '/canvas',
query: req.query
}))
//render our response
canvas(req, res);
});`
我看到的是:URL确实正在更新,但我得到如下结果:
/default?seed=115&random=true,
/default?seed=21457&random=true,
etc
但是我的画布无法渲染,并且在浏览器localhost redirected you too many times.
中出现太多重定向错误
我对Node中的重定向概念不了解很多,但是如果有人可以向我指出正确的方向,以便不再是错误,我将不胜感激。谢谢
答案 0 :(得分:0)
您的问题是您无限重定向。当用户到达/default
时,您将创建查询参数...,然后使用查询参数将其重定向回/default
,然后在其中再次更新查询参数,并将其发送到{{1}永远。您的浏览器意识到您陷入了无限循环,并因“重定向过多”而使您陷入困境。您需要在重定向周围设置中断条件。
也许
/default