javascript - 如何在 MongoDB findOne 上返回条件响应?

标签 javascript node.js mongodb

我检查输入的电子邮件或输入的用户名是否存在于数据库中,以防止创建重复项。它成功检查电子邮件或用户名是否存在,但我不知道如何返回错误响应中存在的内容。目前,它只是返回两者都存在,即使假设只有电子邮件存在而不是用户名。

User.findOne({$or: [{email: req.body.email}, {name: req.body.name}]}).then(user => {
 if (user) {
     return res.status(400).json({ name: "Username exists", email: "Email exists" });
 } 
});

最佳答案

将您的响应提取到对象中

 return res.status(400).json(response_obj)

并有条件地构建它

response_obj = {}
if (user.email) {
  response_obj.email = "Email exists."
}

关于javascript - 如何在 MongoDB findOne 上返回条件响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59555234/

相关文章:

javascript - Nightmare.js 错误 : Search failed: Nothing responds to "goto"

javascript - 悬停时,从一组 div 中找到匹配的类,并将类名分配给匹配项 (jquery/js)

javascript - 创建学生列表并为每个按钮分配功能

javascript - 如何在网页上播放.mp3或.m4a音频并同时显示嵌入的专辑封面? (使用 Javascript、HTML5 或 Flash)

javascript - 尝试让 Jade 重定向页面

javascript - 无法在 Node js 中设置超时

javascript - 在两个集合之间集成

javascript - 为什么我的数组在 .then() 之后是空的? JavaScript

mongodb - 是否可以在 MongoDB 数据库中的对象之间建立关系?

mongodb - Mongoexport 获取 CSV 输出中嵌套对象的属性