Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mongoose findOne()回调返回null_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript Mongoose findOne()回调返回null

Javascript Mongoose findOne()回调返回null,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正试图通过使用在我的节点应用程序中查找mongoose的用户 var User = require('../app/models/user'); function mongoTest() { var publicAddress = "0x8a6be8979340faa30020b0c1f617d8fd4309679f"; User.findOne({"publicAddress": publicAddress}, (err, user) => { if

我正试图通过使用在我的节点应用程序中查找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
。从这里(和)的其他问题来看,这似乎通常与猫鼬的多元化收藏有关。但是,我不认为这是我的问题,因为我的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
    }
});

最后,我确信公共地址是存在的,因为我可以在mongoDB和Robo 3T中看到它。

在您的
userSchema
中,
publicAddress
local
对象的一部分

var userSchema = mongoose.Schema({
    local: {
        username: String,
        password: String,
        pictureCaption: String,
        publicAddress: String,
        contractAddress: String
    }
});
您正试图找到一个具有
publicAddress
的对象,但它实际上位于
local
对象中。因此,您应该按如下方式编辑查询以获得结果

User.findOne({"local.publicAddress": publicAddress}, (err, user) => {
        if (err) {
            res.status(500).send(err)
        } else {
            console.log(user);
        }
    });

userSchema
中,
publicAddress
local
对象的一部分

var userSchema = mongoose.Schema({
    local: {
        username: String,
        password: String,
        pictureCaption: String,
        publicAddress: String,
        contractAddress: String
    }
});
您正试图找到一个具有
publicAddress
的对象,但它实际上位于
local
对象中。因此,您应该按如下方式编辑查询以获得结果

User.findOne({"local.publicAddress": publicAddress}, (err, user) => {
        if (err) {
            res.status(500).send(err)
        } else {
            console.log(user);
        }
    });

您的Mongo集合必须命名为
users
,是这样吗?是的,就是这样。啊啊,
publicAddress
嵌套在
local
中。您应该调用
User.findOne({“local.publicAddress”:publicAddress}
Err
为空是因为没有错误,
user
为空是因为Mongo没有找到任何东西。您的Mongo集合必须命名为
users
,是这样吗?是的,是这样的。啊哈,
publicAddress
嵌套在
local
中。您应该调用
user.findOne({“local.publicAddress”):publicAddress}
Err
为空是因为没有错误,
user
为空是因为Mongo没有找到任何东西。就是这样,为分心道歉!妈的,我应该把它作为一个答案而不是评论发布。看到你的评论后没有复制粘贴。我本来要写的,只是晚了一点。就是这样,阿波罗ogies!妈的,我应该把它作为一个答案而不是一个评论发布。看到你的评论后没有复制粘贴。我本来要写的,只是有点晚了。