无法处理猫鼬查询结果-承诺未定义

艾森

我是猫鼬和诺言的新手,所以可能是我不清楚的事情,这是事情:

我正在编写我的应用程序(MEAN),其中在控制器中堆叠了一些Web服务,以检索和获取内容。我举一个例子。

exports.allowanceCheck = (req, res) => {

  let payload = req.body.excelparam
  let day = getDate(payload[0].data_accesso,1)
  var dummyVar

   return AccessList.aggregate([
    {'$match' : {'id': day}},
    {'$unwind' : '$employees'},
    {
      $group: {
        _id: '$id',
        count: { $sum: 1 }
      }
    }
   ])
  .exec()
  .then((list) => {
    console.log(list) //not working
    res.json(list)
    dummyVar = list
  })
  .catch((err) => {
    res.status(500).send(err)
    
  })

}
console.log(list) //not working
console.log(dummyVar) //not working

Web服务工作正常,客户端获取他的响应JSON:

[
    {
        "_id": "200830",
        "count": 2
    }
]

我现在遇到的问题是,如果我想使用此“列表” JSON数据进行操作,则会收到一个错误,我试图操纵{undefined}内容。(例如,您看到的所有// //都无法正常工作-可能还有其他地方),因此我只能将数据发送回去,并且无法进行任何操作。

我试图保存承诺并访问它,但是没有用。

我究竟做错了什么?

谢谢!:)

对该主题进行考察

您可以尝试以下方法以更好地了解承诺

    exports.allowanceCheck = (req, res) => {

    let payload = req.body.excelparam
    let day = getDate(payload[0].data_accesso, 1)

    functionAllowanceCheck(day).then((listResponse) => {
        console.log(listResponse) //working
        res.json(listResponse)
    }).catch((listError) => {
        res.status(500).send(listError)
    })

}

const functionAllowanceCheck = (day) => {
    return new Promise((resolve, reject) => {
        AccessList.aggregate([
            { '$match': { 'id': day } },
            { '$unwind': '$employees' },
            {
                $group: {
                    _id: '$id',
                    count: { $sum: 1 }
                }
            }
        ]).exec((err, list) => {
            if (err) {
                reject(err)
            } else {
                resolve(list)
            }
        })
    })
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

承诺已兑现但结果未定义

承诺履行处理程序未定义

即使有结果,承诺也会返回未定义的值

承诺将未定义的结果返回给回调

未处理的承诺拒绝:ReferenceError:成员未定义

无法读取承诺中未定义的属性“then”

未捕获(承诺):错误:无法读取未定义的属性

模拟服务返回承诺:无法读取未定义的属性

带有承诺的角度“无法读取未定义的属性'then'”

反应承诺:TypeError:无法读取未定义的属性“ then”

承诺拒绝:无法读取未定义的属性“状态”

autoComplete.js未定义(承诺)未定义,并且无法在IE 11上选择自动完成结果

v-on处理程序中的错误(承诺/异步):“ TypeError:无法读取未定义的属性'data'” //未定义

遍历猫鼬结果返回未定义

带有等待的猫鼬查询返回未定义

猫鼬查询缺少(或未定义)字段的地方

猫鼬-无法读取未定义的属性“ push”

猫鼬:TypeError:无法读取未定义的属性“ findOne”

猫鼬模式无法读取未定义的属性“密码”

无法读取未定义的属性“值”-猫鼬5.6.0

无法读取未定义猫鼬的属性“ length”

猫鼬TypeError:无法读取未定义的属性“ googleID”

TypeError:无法读取猫鼬未定义的属性“ find”

可能的未处理的承诺拒绝(id:0):ReferenceError:未定义用户ReferenceError:未定义用户

未处理的承诺拒绝:无法读取未定义值的属性“推送”

未处理的承诺拒绝错误:无法读取未定义的属性“json”

(节点:6316)未处理的承诺拒绝警告:类型错误:无法读取未定义的属性“id”

'未处理的承诺拒绝:','无法读取未定义的属性(读取'then')'

猫鼬填充未定义的字段