使用node.js在arangoDB中创build文档

什么是正确的方式来传递在JSON文件创build?

我有这个例子工作,并确定如下:/ *在收集中创build一个新的文档* /

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)); 

});

从上面的Kaerus仓库看“创build”函数,create函数是:

 "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客户端以允许行中的对象或string

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

(这可能会导致可选参数的问题)。

注意:无论如何,“json”包含有效的JSON表示是非常重要的。

 { a: "Test" } 

是无效的,

 { "a": "Test" } 

是。

看看这个unit testing: https : //github.com/kaerus/arango-client/blob/master/test/api/document.js

尝试

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