Node.js Alter查询字符串服务器端

Node.js Alter查询字符串服务器端,node.js,express,request,query-string,Node.js,Express,Request,Query String,我有一个Express应用程序,它通过查询字符串获取搜索参数和页码 var name = req.query.name; var state = req.query.state; var category = req.query.category; var pageNum = req.query.pagenum; 我想要的是,如果搜索查询有一个页码并且没有结果,那么在没有页码的情况下执行搜索并将其传递回客户端。这工作正常,前端正确地接收数据 唯一的问题是,我希望URL反映已更改的页码搜索,因此

我有一个Express应用程序,它通过查询字符串获取搜索参数和页码

var name = req.query.name;
var state = req.query.state;
var category = req.query.category;
var pageNum = req.query.pagenum;
我想要的是,如果搜索查询有一个页码并且没有结果,那么在没有页码的情况下执行搜索并将其传递回客户端。这工作正常,前端正确地接收数据

唯一的问题是,我希望URL反映已更改的页码搜索,因此,与其成为
website.com/search?page=4&state=AL
,我希望它将页码剥离或更改为1。我可以通过前端的Javascript实现这一点,但我更希望在服务器端更改url(至少对我来说,这更有意义,而不是必须更改每个模板才能做到这一点)

编辑:
看起来唯一的方法是重定向到URL,而不使用页面查询字符串参数。这似乎可以帮助我完成这项工作。

我不太了解您的环境,但通常URL不能在服务器端“更改”,因为它们显示在客户端的浏览器中。用户看到最后一个整页请求的url。您只能使用HTTP重定向头从服务器端强制URL更新(实际上是使用不同URL重新加载页面)

您可以检查是否有任何带有页码的查询结果,如果没有,只需发送一个不带页码的重定向到URL,这样用户就可以看到带有正确(无页面)URL的扩展结果


希望它能有所帮助。

是的,我在四处阅读,重定向似乎几乎是唯一的方法(讽刺的是,它大大简化了我的代码)。我基本上需要获取url,从查询字符串中删除一个参数,然后重定向到该url。