Couchdb update array отправляет объект json в функцию update - PullRequest
1 голос
/ 21 сентября 2011

Я пытаюсь обновить и передать массив 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"
}

Почему второй переменной там нет?

Можно ли передать объект json вURL вроде: каналы? json = {} ... ??

Спасибо

1 Ответ

3 голосов
/ 21 сентября 2011

Я подозреваю, что вы забыли заключить URL в одинарные кавычки.Наличие символа & указывает вашей оболочке, что она должна выполнить команду в фоновом режиме (а часть 'number = 23' просто игнорируется).

try;

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...