Curl Couchdb更新数组在更新函数中发送json对象

Curl Couchdb更新数组在更新函数中发送json对象,curl,couchdb,Curl,Couchdb,我试图更新并传递一个json对象或变量数组,并在函数中构建json。哪种方法最好 例如,我用来发送变量和构建json的函数: function(doc,req){ var name = req.query.name; var number = req.query.number; var channel = {"name":"" , "number" : ""}; channel.name = name; channel.number = number; doc.channels.push(c

我试图更新并传递一个json对象或变量数组,并在函数中构建json。哪种方法最好

例如,我用来发送变量和构建json的函数:

function(doc,req){ 
var name = req.query.name; 
var number = req.query.number;
var channel = {"name":"" , "number" : ""};
channel.name = name;
channel.number = number;
doc.channels.push(channel); 
return[doc, channel + ' added'];}
curl-X PUT

但我得到的只是阵列中的这个:

{
    "name": "myChannel"
}
为什么第二个变量不存在

是否可以在url中传递json对象,如:channels?json={}


谢谢

我怀疑你忘了用单引号括起url。&的存在向shell表明它应该在后台运行命令(而'number=23'部分被忽略)

尝试

我怀疑它会起作用

我还将注意到,函数可以更简单地写成:

function(doc,req) {
  doc.channels.push({"name":req.query.name, "number": parseInt(req.query.number)});
  return [doc, channel + ' added'];
}

请注意,“23”将作为字符串传递,因此我还添加了一个parseInt调用。

但是可以传递JSON对象吗?比如:curl-X PUT'{“name”:“foo”,“channel”:23}'我认为{}和“将是一个问题……函数看起来像:function(doc,req){doc.channels.push(req.query.json);return[doc,json+'added'];}??它将作为字符串到达,但您可以始终通过json.parse来获得对象。
function(doc,req) {
  doc.channels.push({"name":req.query.name, "number": parseInt(req.query.number)});
  return [doc, channel + ' added'];
}