Node.js 在一个方法上定义两个findOne

Node.js 在一个方法上定义两个findOne,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我用猫鼬这样定义findOne时出错了 Nodes.findOne({label: req.decoded.username}, function(err, node){ Skema.findOne({_id: node.user}, function(err, user) { if (req.body.topic == user.username+'/'+node.label) { res.sendStatus(200)

我用猫鼬这样定义findOne时出错了

Nodes.findOne({label: req.decoded.username}, function(err, node){
      Skema.findOne({_id: node.user}, function(err, user) {
          if (req.body.topic == user.username+'/'+node.label) {
            res.sendStatus(200)
          } else{
            res.sendStatus(403)
          }
      })
    })
我的猫鼬计划

var userscheme = new Schema({_id : String, user : String,label : String, secretkey : String,subsperday : Number,subsperdayremain : Number, sensor : [{ id : String, label : String}]})

var userskema = new Schema({_id : String,username : String,email : String, password : String,first_name : String,last_name : String,is_admin : Number})

var Nodes = mongoose.model('nodes', userscheme)
var Skema = mongoose.model('user', userskema)
当我运行我的程序时,我在
Skema.findOne({u id:node.user},function(err,user)
上有错误
user
变量。当我打印
node.user
时,它的打印id就像我想要的那样


有人能帮我吗?

Mongoose返回null表示您的数据库中没有这样的用户。是
node
您期望的吗?
console.log(node);
。是
node.user
您期望的吗?
console.log(node.user);
您确定要使用的不是
节点.user.id
吗?您的确切错误是什么?您也可以尝试节点调试器查看应用程序某些点的确切值。您可能应该使用它。第二个查询不会返回结果,因为找不到该项。显示您希望匹配的文档b在mongo shell中显示的两个语句都是y。其中一个可能是
ObjectId
,尽管您的架构定义是这样的。@ippi命名没有问题,因为它与给定的
schema
语句匹配。确切的错误(实际上不是错误)如问题中所述。它返回
null
@ippi这不会有任何结果。OP已经说过“当我打印node.user时,它的打印id与我想要的一样。”因此他们显然看到了一些东西。我正在等待关于“什么东西”的确切说明看起来像。所以让我们等待他们的输入。谢谢各位,我得到了这个错误,因为我在第二个模式中遗漏了一些语法“collection:'user'”。