繁体   English   中英

将查询字符串添加到URL

[英]adding a query string to an URL

我正在Node / Express / Jade环境中开发一个应用程序。

假设我启动了我的应用,并将浏览器定向到以下URL:

/superadmin/?year=2012

在此页面上,我找到带有对象的列表,该列表以默认顺序排序。 这也是一个链接,它将以另一顺序对列表对象进行重新排序。 我翡翠这个链接看起来像:

a(href = '?sortAfter=company&ascending=1') Company

如果按此链接, 则将按照我想要的方式对项目进行排序,但是来自早期查询字符串的?year = 2012将丢失。

问题:如何重新编写此链接以添加新的查询字符串,而不是替换它。

遇到了同样的问题,这是我解决的方法:

通过npm install URIjs安装https://npmjs.org/package/URIjs现在,在您的路由中:

var URI = require('URIjs');
app.get('/', function(req, res) {;
    res.render('views/index.jade', {
        urlHelper: function (key, value) {
           return (new URI(req.url)).setQuery(key, value);
        }
    });
};

在玉中:

a(href=linkHelper('acesnding',1)) Company

为此,我提出了自己的npm软件包-> https://www.npmjs.com/package/qsm

例:

var qsm = require('qsm');

app.get('/', (req, res) => {
    res.render('views/index.jade', {
        addQueryString: (key, value) => {
            return qsm.add(window.location.href, [{ query: key, value }]);
        }
    });
});

和玉

a(href= addQueryString('acesnding',1)) Company

请参考qsm中的自述文件,您将看到追加查询字符串,删除特定的查询字符串甚至进行解析等等非常容易!

您甚至可以清除,删除和替换查询字符串。 最好的是,它不一定是URL,它可以是您可以想到的任何字符串,但是它将表现为该字符串是url并向其附加查询字符串:例如: ?key=value&key=value取决于已存在的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM