Azure cosmosdb 文档客户端异常错误状态代码不正确

Azure cosmosdb 文档客户端异常错误状态代码不正确,azure-cosmosdb,Azure Cosmosdb,在测试DocumentDb存储过程时,我特意创建了一个具有重复id的文档,以便观察DocumentClientException。根据当时的文档,我希望异常有一个409状态代码,指示冲突 存储过程代码如下所示: isAccepted = collection.createDocument(collectionLink, duplicateIdDoc, { disableAutomaticIdGeneration: true }, function

在测试DocumentDb存储过程时,我特意创建了一个具有重复id的文档,以便观察DocumentClientException。根据当时的文档,我希望异常有一个409状态代码,指示冲突

存储过程代码如下所示:

isAccepted = collection.createDocument(collectionLink, 
        duplicateIdDoc,
        { disableAutomaticIdGeneration: true },
        function(err, createdDoc, options){
            if (err) throw err;  // Rollback                      
        });
我确实收到了一个异常,但错误代码是400(BadRequest)。消息文本指示正确的问题。具有指定id或名称的资源已存在

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


我遗漏了什么吗?谢谢。

存储过程中抛出的所有错误都以
400(BadRequest)
的形式传播。但是,像
createDocument
这样对数据库的单独调用返回与REST API相同的错误代码


例如,您可以在回调中检查
err.code===409
的值,以验证
crateDocument
是否由于冲突而失败。amd不是其他原因。

存储过程中抛出的所有错误都会作为
400(BadRequest)传播
。但是,像
createDocument
这样对数据库的单独调用返回与RESTAPI相同的错误代码


例如,您可以在回调中检查
err.code===409
的值,以验证
crateDocument
是否由于冲突而失败。而不是其他原因。

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


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

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


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

谢谢。看起来有点奇怪,但是如果(err)抛出新错误('code'+err.number+'code');并使用正则表达式将其从错误消息中分离出来,我可以使用下面的
if获得实际代码。谢谢。看起来有点奇怪,但是我可以使用下面的
if获得实际代码(err)抛出新错误('CODE'+err.number+'CODE');并使用正则表达式将其从错误消息中分离出来。