我正在使用Restify和Mongoose创建一个API
,而这两个都是我的新手。我似乎无法找出正确的方法来处理Mongoose / Node中的错误。
到目前为止,我正在尝试执行以下操作:
Submission.findById(req.params.submission_id, function(err, data) {
if (err)
return next(err);
res.send(data);
});
我正在尝试为此调用GET(针对不存在的用户)。而不是发送回简单的错误消息,而是导致整个节点应用程序失败。我对return
next(err)的用户以及应该怎么做感到困惑。
任何帮助是极大的赞赏。
一个findById
是没有找到匹配查询是不是在猫鼬级别的错误,所以你如果你想治疗这种方式,你必须自己做:
Submission.findById(req.params.submission_id, function(err, data) {
if (err)
return next(err);
else if (!data)
return next(new Error("User not found"));
res.send(data);
});
我正试图决定如何处理猫鼬中的验证错误。 我使用节点验证器定义了自己的验证规则,例如: 这将产生如下错误: 然而,节点验证器提供了自己的错误消息。如果我使用mongoose validator节点模块将节点验证器直接插入到我的模式中,那么我可以直接使用这些错误消息: 这将生成一条错误消息,如下所示: 我也可以在此处提供自定义错误消息: Mongoose允许您根据需要定义字段: 这将生成一条错误消息,
问题内容: 如果猫鼬无法连接到数据库,如何设置错误处理的回调? 我知道 但是是否有类似的东西 ? 问题答案: 连接后,您可以在回调中获取错误:
问题内容: 我有重复密钥的问题。很长一段时间找不到答案。请帮助我解决此问题或解释为什么我得到重复的密钥错误。 但是在监视器中,我使用upsert,所以为什么会出现重复错误? monitor.js:62-70 监控架构 指数 并增加财产 utils.js 问题答案: 导致插入文档的ups不是完全原子的操作。将ups视为执行以下离散步骤: 查询标识的文档以进行增补。 如果文档存在,则自动更新现有文档。
问题内容: 我试图用mongoose在mongodb中保存一个新文档,但是即使我提供电子邮件,passwordHash和用户名,我也能得到。 这是用户架构。 这就是我创建和保存用户对象的方式。 那么为什么猫鼬会返回验证错误,我不能用作临时值吗? 问题答案: 回应您的最后评论。 您正确的认为null是一个值类型,但是null类型是一种告诉解释器它 没有value的方法 。因此,必须将这些值设置为任何
问题内容: 我正在从npm 使用此架构: 如果我尝试保存已经存在于db中的电子邮件,则如果省略该字段,我希望得到一个类似的电子邮件。但是事实并非如此,我得到了。 这不是验证错误(即使我删除了unique:true也会发生)。 知道为什么吗? 问题答案: 我更喜欢将其放在路径验证机制中,例如 然后,它将被包装,并在您调用或时作为第一个参数返回。
我正在与节点JS中的promise模式作斗争 我在db中寻找用户,然后用用户引用保存新实体,但当用户不在db中时,我应该返回拒绝,但我不确定如何正确地做到这一点。 有什么办法可以做得更好吗? btw:对不起,coffeescript :-[