【发布时间】:2021-07-14 17:35:27
【问题描述】:
findOne 总是返回 null
我在数据库中有“user(hello@gmail.com)”数据,但 User.findOne 总是返回 null。请帮我。我有一个在后台运行的节点,但它给了我 null 。 req.body 给出了我通过但 findOne 不工作的电子邮件。 User.create 工作正常。但是像 find,findById,findOne 这样的搜索查询不起作用。有人请帮助我。
const userSchema = new mongoose.Schema({
name: {
type: String,
required: [true, 'A user must have a unique name'],
unique: true,
},
password: {
type: String,
required: true,
unique: true,
minlength: 8,
},
email: {
type: String,
required: [true, 'A user must have a unique name'],
unique: true,
lowercase: true,
}
const User = mongoose.model("User", userSchema);
exports.getTest=async (req,res)=>{
const {email} = req.body // returns "hello@gmail.com"
const user = await User.findOne({email})
console.log(user) //returns null
res.json({
status:"success",
data:{
user
}
})
}
【问题讨论】:
-
您的电子邮件字段中可能有空格或不匹配。你的语法看起来是正确的,你不需要 exec()。三重检查所有假设,因为这些是万恶之源。
-
有人告诉我
.exec()使 Mongoose 请求异步,我永远无法检查这是不是真的 -
这是我第二周试图找到我的错误。我找不到。这就是为什么我需要你们的帮助
标签: javascript jquery node.js mongodb mongoose