在Node.js中的querystring中传递数组



我使用Node.js和Cradle来调用CouchDB更新处理程序。我需要在querystring中传递一个数组,但当我在CouchDB中读取req.query对象时,只有第一个数组值可用。因此,例如使用Cradle.更新方法:

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

但当我检查传递给CouchDB的QS值时,它是:

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

然后在CouchDB更新函数中,req.query.tags只给了我"两个"。我注意到Cradle使用require("querystring")来执行"querystring.stringfy",所以我也尝试了visionmedia的require(("qs"),但"qs.stringify"给了我:

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

CouchDB似乎希望将标签数组传递为:

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

如何构建这样的查询字符串?

您可以使用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

您将看到:{"tags":["tag1"、"tag2"、"tag3"]}

相关内容

  • 没有找到相关文章

最新更新