Zim*_*Zim 2 couchdb node.js cradle
我正在使用带有Cradle的Node.js来调用CouchDB更新处理程序.我需要在查询字符串中传递一个数组,但是当我在CouchDB中读取req.query对象时,只有第一个数组值可用.因此,例如使用Cradle .update方法:
db.update("myview/myupdate", id, {title:'sometitle',tags:['one','two']}, function }...
Run Code Online (Sandbox Code Playgroud)
但是当我检查传递给CouchDB的QS值时,它是:
?title=sometitle&tags=one&tags=two
Run Code Online (Sandbox Code Playgroud)
然后在CouchDB更新函数中,req.query.tags只给我"两个".我注意到Cradle使用require("querystring")来执行"querystring.stringify",所以我也试过了visionmedia的require("qs")但是"qs.stringify"给了我:
?title=sometitle&tags[]=one&tags[]=two
Run Code Online (Sandbox Code Playgroud)
似乎CouchDB希望将标签数组传递为:
?title=sometitle&tags=["one","two"]
Run Code Online (Sandbox Code Playgroud)
如何构建一个看起来像这样的查询字符串?
您可以使用Connect和他的查询中间件.
npm install connect
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
将浏览器指向http://127.0.0.1:3001/?tags=tag1&tags=tag2&tags=tag3
你会看到:{"tags":["tag1","tag2","tag3"]}
| 归档时间: |
|
| 查看次数: |
5988 次 |
| 最近记录: |