当前位置: 首页 > 知识库问答 >
问题:

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

南门建章
2023-03-14

我有一个按钮,它正在执行“访问我的页面”并向查询字符串添加筛选器。我的代码将该过滤器应用于网格,但用户可以删除/编辑该过滤器。因为他们可以看到网格中应用了什么过滤器,所以我想在显示页面时从查询字符串中删除?filter=blah

它可能会混淆,如果在页面上和URL说?filernA最初是正确的,但是用户删除了这个过滤器,并在列B上应用了一个新的过滤器,但是查询字符串仍然是?filer-列A.网格可以处理更改过滤器,而不需要后退。

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

以下是显示页面的代码:

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
            }
    });

};

共有3个答案

戚云
2023-03-14

Express 4.x答案:
res.redirect(请求路径)

怀晋
2023-03-14

不要使用模块执行类似操作:

res.redirect( req.originalUrl.split("?").shift() );
万德海
2023-03-14

使用url.parse()获取地址的组件,即req.url。不带查询字符串的url存储在pathname属性中。

使用Express'重定向发送新的页面地址。

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

url的节点文档。

 类似资料:
  • 问题内容: 我使用node.js和socket.io。 我的应用程序在端口3000上运行。该应用程序从以下网址启动: **mydomain.com :3000/ ** 我想从 **mydomain.com** 运行该应用程序-我想从url中删除端口。 在哪里以及如何设置此设置? 问题答案: 查找您的呼叫并将端口从更改为。不要忘记,您必须运行具有该功能的程序(有关详细信息,请参阅),以便绑定到Lin

  • 问题内容: 从Java脚本的路径中删除查询字符串的简单方法是什么?我已经看到了使用window.location.search的Jquery插件。我不能这样做:在我的情况下,URL是从AJAX设置的变量。 问题答案: 一个简单的方法是: 对于那些还希望 在不存在querystring的情况* 下 删除哈希 (不是原始问题的一部分)的人,需要做更多的工作: * 编辑 @caub(最初为@crl)建议

  • 我有一个查询字符串,可以是: 编辑:参数值的长度可以大于2 有人知道在String.ReplaceAll([regex],[replace])中使用什么好的regex表达式吗?

  • 问题内容: 我有一个数据库名称字典。我从字典中取一个名字 可以说database_name的值为’foo’ 使用Psycopg2我正在执行一条语句: 我在foo处收到语法错误,因为它应该是“ INSERT INTO foo VALUES”而不是“ INSERT INTO’foo’VALUES” 有什么建议如何传递表名的字符串值并删除单引号?我应该在数据库字典值中放置一个转义符吗? 问题答案: 在尝

  • 问题内容: 我需要从Java中的字符串中删除字符“¼”和“ 1/2”。我怎样才能做到这一点? 我无法控制请求,我必须接受输入内容。基本上,请求字符串具有字符“¼”和“ 1/2”,我需要将它们替换为空字符串。 我尝试将其放在列表中,但不起作用: invalidChars.add(’½’); 然后搜索这个。Jenkins抱怨:无法映射字符,无法编码UTF-8 [INFO] 2错误 问题答案: 从技术上

  • 问题内容: 除了使用正则表达式之外,还有没有更好的方法可以从标准Ja​​vaScript中的URL字符串中的查询字符串中删除参数? 到目前为止,这是我想出的方法,似乎可以在我的测试中使用,但是我不希望重新发明querystring解析! 问题答案: 似乎很危险,因为它的参数“ bar”会匹配: 另外,如果包含RegExp中特殊的任何字符(例如“。”),它将失败。而且它不是全局正则表达式,因此只会删