【发布时间】:2017-07-28 22:36:22
【问题描述】:
我正在尝试使用 mongoose 在我的节点应用程序中查找用户
var User = require('../app/models/user');
function mongoTest() {
var publicAddress = "0x8a6be8979340faa30020b0c1f617d8fd4309679f";
User.findOne({"publicAddress": publicAddress}, (err, user) => {
if (err) {
res.status(500).send(err)
} else {
console.log(user);
}
});
}
和err 和user 总是返回null。从这里的其他问题(this 和this)来看,这通常似乎与 mongoose 多元化集合有关。但是,我认为这不是我的问题,因为我的 users.js 有
module.exports = mongoose.model('User', userSchema);
// Have also tried module.exports = mongoose.model('User', userSchema, 'User');
为了完整起见,users.js 是
var mongoose = require('mongoose');
var bcrypt = require('bcrypt-nodejs');
// Define the schema for our user model
var userSchema = mongoose.Schema({
local: {
username: String,
password: String,
pictureCaption: String,
publicAddress: String,
contractAddress: String
}
});
最后,我确定公共地址存在,因为我可以使用 Robo 3T 在 mongoDB 中看到它。
【问题讨论】:
-
你的 Mongo 收藏必须命名为
users,是这样吗? -
是的。
-
啊啊,
publicAddress嵌套在local中。你应该打电话给User.findOne({"local.publicAddress": publicAddress}。Err为 null 因为没有错误,user为 null 因为 Mongo 没有找到任何东西。
标签: javascript node.js mongodb mongoose