NodeJ的FindOne返回未定义

时间:2018-07-19 07:28:23

标签: node.js mongoose pug

router.get('/renew/:id',ensureAuthenticated , function(req, res){
  // console.log();
  Store.findById(req.params.id, function(err, stores){
    // console.log(stores);
    Plan.find({}, function(err, plans){
      Transaction.findOne({"app":req.body.appID},{"sort":{"startDate":-1}},function(err, transOne){
        console.log("transOne :" +transOne);
        Transaction.find({"_id":transOne._id},function(err, transactions){
          console.log("trans :"+transactions);
          res.render('edit_store', {
            title:'Edit Store',
            stores:stores,
            user:login.userLogin,
            plans:plans,
            transactions:transactions
          });
        });
      });
    });
  });
});

为什么我的transOne变量未定义?

TransOne Undefined

所以,我的交易变量是错误的。

我想选择具有我选择的appID的最新文档。

我想知道如何获得findOne的结果。

我用过:

  

transOne = Transaction.findOne({“ app”:req.body.appID},{“ sort”:{“ startDate”:-1}});

但是,它返回“ [Object Object]”。

1 个答案:

答案 0 :(得分:1)

您已经编写了get请求,然后如何在此请求中获取正文,这不是在get请求中发送正文的好方法。

这里

Transaction.findOne({"app":req.body.appID})

您正在尝试使用req.body.appID尝试以参数形式发送它并执行查找操作。

谢谢,希望对您有帮助

参考: HTTP GET with request body