4

作成のためにjsonドキュメントを渡す正しい方法は何ですか?

私は以下のように動作する例を持っています: /* コレクションに新しいドキュメントを作成します */

db.document.create({a:"test"},function(err,ret){
if(err) console.log("error(%s): ", err,ret);
else console.log(util.inspect(ret));
});

しかし、これが機能しないため、jsonを引数として渡すにはどうすればよいですか?

var json = '{a:"test"}';

db.document.create(json,function(err,ret){
if(err) console.log("error(%s): ", err,ret);
else console.log(util.inspect(ret));

});

4

2 に答える 2

4

上記のKaerusリポジトリの「作成」機能を見ると、作成機能は次のとおりです。

"create": function() {
  var collection = db.name, data = {}, options = "", callback, i = 0;
  if(typeof arguments[i] === "boolean"){ 
    if(arguments[i++] === true)
      options = "&createCollection=true";
  } 
  if(typeof arguments[i] === "string") collection = arguments[i++];
  if(typeof arguments[i] === "object") data = arguments[i++];
  if(typeof arguments[i] === "function") callback = arguments[i++];
  return X.post(xpath+collection+options,data,callback);
},

したがって、それを JavaScript オブジェクトとして渡す必要があります。

JSON.parse('{"a":"test"}')

JSON 表現を JavaScript オブジェクトに変換するか、Kaerus クライアントにパッチを適用して、行内のオブジェクトまたは文字列を許可します

if(typeof arguments[i] === "object") data = arguments[i++];

(これにより、オプションの引数で問題が発生する可能性があります)。

注: いずれにしても、「json」に有効な JSON 表現が含まれていることが重要です。

{ a: "Test" }

有効じゃない、

{ "a": "Test" }

は。

于 2013-04-01T20:19:25.070 に答える
2

この単体テストをご覧ください: https://github.com/kaerus/arango-client/blob/master/test/api/document.js

試す

 var json = {"a":"test"};
于 2013-04-01T18:24:51.160 に答える