【发布时间】:2017-12-11 08:08:23
【问题描述】:
我只是试图为 documentDB API 执行标准示例 bulkImport sproc,但我似乎无法将对象数组传递给它。我总是收到 400 个错误尽管文档给出了发送对象数组的明确方向 ..非常令人沮丧。
附加细节:即使我将数组包装在一个对象中,该数组具有“items”属性下的数组并将其包含在我的存储过程中,它仍然会出错,说相同的错误请求,需要是一个对象或 JSON 序列化.当我尝试在发送之前执行 JSON.stringify(docs) 时,它无法在另一端解析。
错误请求:文档正文必须是表示 JSON 序列化对象的对象或字符串。
bulkInsert.js: https://github.com/Azure/azure-documentdb-js-server/blob/master/samples/stored-procedures/BulkImport.js
我的代码(使用 documentdb-util 进行异步):
execProc(docs, insertProc);
async function execProc(docs, insertProc){
let database = await dbUtil.database('test');
let collection = await dbUtil.collection(database, 'test');
let procInstance = await dbUtil.storedProcedure(collection, insertProc);
try{
let result = await dbUtil.executeStoredProcedure(procInstance, docs);
console.log(result);
} catch(e){
console.log(e.body)
}
}
标题
对象 {Cache-Control: "no-cache", x-ms-version: "2017-11-15", 用户代理:“win32/10.0.16299 Nodejs/v8.9.0 documentdb-nodejs-s…”, x-ms-date: "2017 年 12 月 11 日星期一 07:32:29 GMT", 接受:“应用程序/json” 授权:myauth 缓存控制:“无缓存” 内容类型:“应用程序/json” 用户代理:“win32/10.0.16299 Nodejs/v8.9.0 documentdb-nodejs-sdk/1.14.1” x-ms-date:"2017 年 12 月 11 日星期一 07:32:29 GMT" x-ms-version:"2017-11-15"
路径 "/dbs/myDB/colls/myColl/sprocs/myBulkInsert"
参数
Array(3) [对象,对象,对象] 长度:3
0:Object {id: "0001", type: "donut", name: "Cake", ...}
1:Object {id: "0002", type: "donut", name: "Raised", ...}
2:Object {id: "0003", type: "donut", name: "Old Fashioned", ...}
[{
"id": "0001",
"type": "donut",
"name": "Cake",
"ppu": 0.55
},
{
"id": "0002",
"type": "donut",
"name": "Raised",
"ppu": 0.35
},
{
"id": "0003",
"type": "donut",
"name": "Old Fashioned",
"ppu": 0.25
}]
【问题讨论】:
标签: json node.js azure-cosmosdb