首页 文章

文档客户端异常错误错误状态代码

提问于
浏览
1

在测试DocumentDb存储过程时,我故意创建了一个具有重复id的文档,以便我可以观察DocumentClientException . 根据http://azure.github.io/azure-documentdb-js-server/Collection.html#.ErrorCodes的文档,我期待异常有409状态代码表明冲突 .

存储过程代码如下:

isAccepted = collection.createDocument(collectionLink, 
        duplicateIdDoc,
        { disableAutomaticIdGeneration: true },
        function(err, createdDoc, options){
            if (err) throw err;  // Rollback                      
        });

我收到一个异常,但错误代码是400(BadRequest) . 消息文本指示正确的问题 . 已存在具有指定标识或名称的资源 .

“消息:{\”Errors \“:[\”执行函数时遇到异常 . 异常=错误:{\“错误\”:[\“具有指定ID或名称的资源已存在\”]} \ r \ n堆栈跟踪:错误:{\“错误\”:[\ “具有指定id或名称的资源已存在\”]} \ n在匿名函数(duplicateIdTest.js:56:26)\ n在匿名函数(duplicateIdTest.js:685:29)\“]} \ r \ nActivityId :886230cf-8d49-433e-845f-8cc7c2ae486d,请求URI:/ apps / 514defcb-ac21-44e6-a8e0-c7b785523c6c / services / 32782613-7101-4924-97b0-604052a6723b / partitions / be6c2ec8-130c-4596-90a2-b1807977dd0b /复制/ 131240065159522367p”

我错过了什么吗?谢谢 .

2 回答

  • 0

    err.code不起作用,在回调中使用err.number来处理已知异常

    例如:err.number === 409冲突

  • 0

    存储过程中引发的所有错误都将传播为 400 (BadRequest) . 但是,对数据库的单独调用(如 createDocument )将返回与REST API相同的错误代码 .

    例如,您可以在回调中检查 err.code === 409 的值,以验证 crateDocument 由于冲突而失败 . 不是别的什么的 .

相关问题