gpt4 book ai didi

node.js 与 express 如何从 url 中删除查询字符串

转载 作者:IT老高 更新时间:2023-10-28 21:59:55 26 4
gpt4 key购买 nike

我有一个按钮,它正在执行获取我的页面并向查询字符串添加过滤器。我的代码将该过滤器应用于网格,但用户可以删除/编辑该过滤器。由于他们可以看到网格中应用了哪些过滤器,因此我想在显示页面时从查询字符串中删除 ?filter=blah

如果页面上的 URL 显示 ?filter=columnA 最初是正确的,但用户删除该过滤器并在 columnB 上应用一个新过滤器,这可能会造成混淆> 但查询字符串仍然显示 ?filter-columnA。网格可以处理更改过滤器而无需回发。

我该怎么做?如果您无法删除/更新查询字符串,是否可以解析它,然后在没有查询字符串的情况下重定向到主页?将过滤器保存到 var 过滤器后,查询字符串中就不再需要它了。

这是显示页面的代码:

exports.show = function(req, res) {
var filter = req.query.filter;
if (filter === null || filter === "") {
filter = "n/a";
}

res.render("somepage.jade", {
locals: {
title: "somepage",
filter: filter
}
});

};

最佳答案

使用url.parse() 获取你的地址的组成部分,即req.url。没有查询字符串的 url 存储在 pathname 属性中。

使用express'redirect发送新的页面地址。

const url = require('url'); // built-in utility
res.redirect(url.parse(req.url).pathname);
url

Node 文档.

关于node.js 与 express 如何从 url 中删除查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14166898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com