文档客户端异常不正确的错误状态代码
Document Client Exception Incorrect Error Status Code
在测试 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)。消息文本指示正确的问题。具有指定 ID 或名称的资源已存在。
"Message: {\"错误\":[\"Encountered exception while executing function. Exception = Error: {\"错误\\":[\\"Resource with specified id or name already exists\"]}\r\nStack 跟踪:错误:{\\"Errors\":[\\"Resource with specified id or name already exists\"]}\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/replicas/131240065159522367p"
我错过了什么吗?谢谢
存储过程中抛出的所有错误都传播为 400 (BadRequest)
。然而,像createDocument
return这样对数据库的个别调用与RESTAPI一样的错误代码。
例如,您可以在回调中检查 err.code === 409
的值,以验证 crateDocument
是否因冲突而失败。 amd 不是别的。
err.code 不起作用,请在回调中使用 err.number 来处理已知异常
例如:err.number === 409 冲突
在测试 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)。消息文本指示正确的问题。具有指定 ID 或名称的资源已存在。
"Message: {\"错误\":[\"Encountered exception while executing function. Exception = Error: {\"错误\\":[\\"Resource with specified id or name already exists\"]}\r\nStack 跟踪:错误:{\\"Errors\":[\\"Resource with specified id or name already exists\"]}\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/replicas/131240065159522367p"
我错过了什么吗?谢谢
存储过程中抛出的所有错误都传播为 400 (BadRequest)
。然而,像createDocument
return这样对数据库的个别调用与RESTAPI一样的错误代码。
例如,您可以在回调中检查 err.code === 409
的值,以验证 crateDocument
是否因冲突而失败。 amd 不是别的。
err.code 不起作用,请在回调中使用 err.number 来处理已知异常
例如:err.number === 409 冲突