Javascript 关于mongoose方法回调函数中错误的文档
我开始在我的web开发中处理关键场景,到目前为止,我从来没有太注意代码回调中的err,通常我所做的只是例如:Javascript 关于mongoose方法回调函数中错误的文档,javascript,mongoose,callback,Javascript,Mongoose,Callback,我开始在我的web开发中处理关键场景,到目前为止,我从来没有太注意代码回调中的err,通常我所做的只是例如: Model.find({'_id': someId}, function(err, doc) { if(err) console.log(err) else { // do business logic }) 问题是,我并没有在收到错误的情况下绊倒,我想要一个关于为什么会抛出这些错误的完整说明,这样我就可以为生产场景准备代码 我查看了一些文档,但我找不到关于为什么会抛出错误的完整综
Model.find({'_id': someId}, function(err, doc) {
if(err) console.log(err)
else { // do business logic })
问题是,我并没有在收到错误的情况下绊倒,我想要一个关于为什么会抛出这些错误的完整说明,这样我就可以为生产场景准备代码
我查看了一些文档,但我找不到关于为什么会抛出错误的完整综述,是否存在这样的资源?在mongoose的mongodb操作过程中,有许多可能抛出错误的场景。例子包括 一,。 在您的情况下:如果为获取文档而传递的id无效(即无法转换为objectId)。这可能是一个开发人员错误,在这种情况下,他可能会向方法传递一个无效的id,因为通常不要求用户输入id。要覆盖所有可能的循环漏洞或充当防御性程序员,您需要通过返回带有适当消息的
notfound
状态来处理该实例中的错误,如下所示。然后,开发人员检查返回对象的状态或消息以采取适当的行动
Model.find({'_id': someId}, function(err, doc) {
if(err) {
console.log(err);
return {
status: 'Not Found',
message: 'Possible Invalid ID or Document does not exist'
}
}else { // do other business logic }
})
删除
或创建
时,也可能会出现其他错误这些都很有趣,我也想到了一些。谢谢你的链接,我希望有一些全面的列表,但这是一个公平的开始。
{
[MongoError: insertDocument :: caused by :: 11000 E11000 duplicate key error
index: mydb-api.users.$email_1 dup key: { : "my@duplicate.com" }]
name: 'MongoError',
code: 11000,
err: 'insertDocument :: caused by :: 11000 E11000 duplicate key error index: mydb-api.users.$email_1 dup key: { : "my@duplicate.com" }' }
}