我正在尝试像这样查询数据库
const Admin = require("./model/Admin");
module.exports = {
validateUser : (uName, pwd) => {
mongoose.connect("mongodb://127.0.0.1:27017/TeamDK")
//console.log("Uname: " + uName + ", Pwd: " + pwd)
res = Admin.findOne({ initial: "tt" }).exec()
}
}
在上面的例子中,不返回任何结果,res
的值为空。
我也试过这样回电话
res = Admin.findOne({ initial: "tt" }, (err, val) => {
console.log(res)
使用回调函数,res
的输出是不同的。我添加了一个屏幕截图,只显示了一部分,因为它非常大。x1c 0d1x
我确信在我的Model collection
中有一个文档。当像这样使用monosh
时,我得到的是
{
_id: ObjectId("63ebbd6c59097f4a25f23d31"),
firstName: 'Test',
initial: 'tt',
lastName: 'Unknown',
email: 'test@gg.com',
password: '123',
role: 4
}
如果有用的话,我的模型如下所示:
const adminSchema = mongoose.Schema({
firstName : {
type : String,
required : [true, "Why no name?"]
},
initial: {
type: String,
required: [true, "Why no initials?"],
index: {unique: true }
},
lastName : {
type : String,
required : [true, "Why no last name?"]
},
email : {
type : String,
required : [true, "Then how are we gonna contact you?"],
index: {unique: true }
},
password : {
type : String,
required : [true, "Come one man"]
},
dateCreate : {
type : Date,
default : Date.now
},
role : {
type : mongoose.Types.ObjectId,
ref : "role"
}
})
module.exports = mongoose.model("Admin", adminSchema);
我已经花了将近一天的时间试图修复这个问题,尝试在https://mongoosejs.com/
上遵循guid,并尝试在stackoverflow上查找类似的问题,但我就是不知道我做错了什么
- ----------------------更新--------------------------------
我也尝试过创建函数async
,并使用await
。我尝试过将代码隔离到一个新文件中,并像这样做
const mongoose = require ("mongoose");
const Admin = require("./model/Admin");
async function testAdmin() {
await mongoose.connect("mongodb://127.0.0.1:27017/TeamDK")
res = await Admin.findOne({ initial: "tt" }).exec()
console.log(res)
}
testAdmin()
我还尝试删除exec()
,
res = await Admin.findOne({ initial: "tt" })
我仍然得到null返回。任何其他建议都是最受欢迎的
1条答案
按热度按时间ca1c2owp1#
.findOne
是异步的,我们必须使用await
或callback
来接收它的结果:然后使用这样的控制器,例如Express