2012-03-08 73 views
2

我用Cradle的Node.js調用CouchDB更新處理程序。我需要在查詢字符串中傳遞數組,但是當我讀取CouchDB中的req.query對象時,只有第一個數組值是可用的。因此,例如使用搖籃.update方法:傳遞數組在查詢字符串Node.js

db.update("myview/myupdate", id, {title:'sometitle',tags:['one','two']}, function }... 

但是,當我檢查傳遞給CouchDB中的QS值是:

?title=sometitle&tags=one&tags=two 

然後在CouchDB的更新功能,req.query.tags只給我兩」。我注意到,搖籃使用要求(「查詢字符串」)做了「querystring.stringify」,所以我也試過visionmedia的要求(「QS」),但是「qs.stringify」給我:

?title=sometitle&tags[]=one&tags[]=two 

會似乎CouchDB希望標籤數組通過:

?title=sometitle&tags=["one","two"] 

我該如何建立一個看起來像這樣的查詢字符串?

+0

你是說這是craddle中的錯誤?如果是這樣,你應該打開一個問題。 – fent 2012-03-08 04:35:37

回答

6

您可以使用Connect和他的查詢中間件。

npm install connect 
var connect = require('connect'); 

var server = connect(); 
server.use(connect.query()); 
server.use(function (req, res, next) { 
    res.end(JSON.stringify(req.query)); 
}); 
server.listen(3001); 

瀏覽器指向http://127.0.0.1:3001/?tags=tag1&tags=tag2&tags=tag3

你會看到:{ 「標籤」: 「標籤1」, 「標籤2」, 「標籤3」]}