2013-10-28 213 views
0

我正在開發Node/Express/Jade環境中的應用程序。將查詢字符串添加到URL

假設我開始我的應用程序,並指導我的瀏覽器這個網址:

/superadmin/?year=2012 

在這個頁面上,我找到對象列表,在默認排序。這裏還有一個鏈接,它將以另一種順序重新排列列表對象。我玉這個鏈接看起來像:

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

如果我按這個環節,我獲得從早期的查詢字符串在我想要的方式排序的項目,但同比2012 =將丟失。

問:我如何重新寫這個鏈接添加新的查詢字符串,而不是更換它。

+1

爲什麼不只是在鏈接字符串末尾添加年份(href ='?sortAfter = company&ascending = 1&year = 2012') –

+1

看看http://stackoverflow.com/questions/6912584/how getto query-string-variables-in-node-js – plalx

+1

^^^多米尼克說什麼,像'href ='?stuff'+'&year ='+ req.body.year' – adeneo

回答

0

得到了同樣的問題,以下是我固定它:

安裝https://npmjs.org/package/URIjs通過npm install 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 
0

我已經拿出了我自己的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的自述,你會看到它是多麼容易追加查詢字符串,刪除特定的查詢字符串,甚至解析以及更多!

你甚至可以清除,刪除和替換querystrings。最棒的是,它不一定是網址,它可以是任何你能想到的字符串,但它會表現爲該字符串是一個URL並追加查詢字符串:例如:?key=value&key=value,具體取決於什麼是已經存在。

相關問題