我正在尝试更新和传递一个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 https://server/db/_design/doc/_update/addChannel/channels?name=myChannel&number=23
但我得到的只是阵列中的这个:
{
"name": "myChannel"
}
为什么不存在第二个变量?
是否可以在url中传递json对象,如:channels?json = {} ...... ??
由于
答案 0 :(得分:3)
我怀疑你忘了用单引号将网址括起来。 &存在向你的shell表明它应该在后台运行命令(并且'number = 23'部分被简单地忽略)。
试;
curl -X PUT 'https://server/db/_design/doc/_update/addChannel/channels?name=myChannel&number=23'
我怀疑它会起作用。
我还会注意到函数可以更简单地写成;
function(doc,req) {
doc.channels.push({"name":req.query.name, "number": parseInt(req.query.number)});
return [doc, channel + ' added'];
}
请注意,“23”将作为字符串传递,因此我也添加了一个parseInt调用。