为什么MongoDB发送错误500时重复密钥
问题描述:
当从MongoDB收到答案时,知道我的错误是重复键,但为什么status = 500 ?,应该是4 **。 我使用的NodeJS(帆/ express.js)为什么MongoDB发送错误500时重复密钥
{ "error": {
"error": "E_UNKNOWN",
"status": 500,
"summary": "Encountered an unexpected error",
"raw": {
"name": "MongoError",
"code": 11000,
"err": "E11000 duplicate key error index: eReporterDB.users.$name_1 dup key: { : \"codin\" }"
} } }
答
答案是here为
的NodeJS操作错误与错误的程序员
这是有帮助的所有错误分成两大类:
操作错误代表正确编写的程序遇到的运行时问题。这些不是程序中的错误。事实上,这些通常是其他问题的问题:系统 本身(例如,内存不足或打开的文件太多),系统的配置(例如,没有路由到远程主机),网络(例如, 套接字挂断)或远程服务(例如,500错误,连接失败或诸如此类)。示例包括:
failed to connect to server failed to resolve hostname **invalid user input** request timeout server returned a 500 response socket hang-up system is out of memory
程序员错误是程序中的错误。这些东西总是可以通过更改代码来避免。他们永远不能妥善处理 (因为根据定义,有问题的代码被破坏)。 试图读取的财产“未定义” 称为无回调 异步函数传递,其中一个对象,预计 通过其中一个IP地址字符串预计
伙计对象的“字符串”,这是蒙戈,不Postgres的。 – freakish
你可能会得到500,因为MongoDB引发了一个没有被任何东西捕获的异常,这是一个服务器错误而不是客户端错误。 –
这也发生在postgres中。 –