作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个按钮,它正在执行获取我的页面并向查询字符串添加过滤器。我的代码将该过滤器应用于网格,但用户可以删除/编辑该过滤器。由于他们可以看到网格中应用了哪些过滤器,因此我想在显示页面时从查询字符串中删除 ?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/
我是一名优秀的程序员,十分优秀!