Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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 TypeError:无法读取属性';评级VG';nodejs中未定义的_Javascript_Node.js - Fatal编程技术网

Javascript TypeError:无法读取属性';评级VG';nodejs中未定义的

Javascript TypeError:无法读取属性';评级VG';nodejs中未定义的,javascript,node.js,Javascript,Node.js,我已经从github下载了这个项目,但是我在运行时遇到了这个错误。似乎错误在于从数据库检索评论。 这个项目的后端是在nodejs中完成的,前端是在angularjs中完成的。 我已经发布了一些可能发生此错误的代码和错误控制台。 请帮我解决这个问题。 事先非常感谢你 Preview.js exports.getRentalRating = function(req, res) { const rentalId = req.params.id; Review.aggregate([

我已经从github下载了这个项目,但是我在运行时遇到了这个错误。似乎错误在于从数据库检索评论。 这个项目的后端是在nodejs中完成的,前端是在angularjs中完成的。 我已经发布了一些可能发生此错误的代码和错误控制台。 请帮我解决这个问题。 事先非常感谢你

Preview.js

exports.getRentalRating = function(req, res) {
  const rentalId = req.params.id;

  Review.aggregate([
    {"$unwind": "$rental"},
    {"$group": {
      "_id": rentalId,
      "ratingAvg": {"$avg": "$rating"}
    }}], function (err, result) {
      if (err) {
        return res.status(422).send({errors: normalizeErrors(err.errors)});
      }

      return res.json(result[0]['ratingAvg'])
    })
}
控制台中的错误

App is running!
events.js:167
      throw er; // Unhandled 'error' event
      ^

TypeError: Cannot read property 'ratingAvg' of undefined
    at E:\bwm-ng\server\controllers\review.js:94:32
    at E:\bwm-ng\node_modules\mongoose\lib\model.js:3954:16
    at model.hooks.execPost (E:\bwm-ng\node_modules\mongoose\lib\aggregate.js:811:13)
    at E:\bwm-ng\node_modules\kareem\index.js:135:16
    at process._tickCallback (internal/process/next_tick.js:61:11)
Emitted 'error' event at:

[nodemon] app crashed - waiting for file changes before starting...

您试图返回结果中不存在的文档属性。您似乎在
result
中没有任何数据,或者它不在您期望的结构中,并且正在尝试访问其中的项目

请添加
console.log(结果)。所以我们可以看看你有什么数据,如果有的话

变更依据:

Review.aggregate([
    {"$unwind": "$rental"},
    {"$group": {
      "_id": rentalId,
      "ratingAvg": {"$avg": "$rating"}
    }}], function (err, result) {
      if (err) {
        return res.status(422).send({errors: normalizeErrors(err.errors)});
      }

      console.log(result);

      // check you have data before you attempt to access properties on it
      if(result && result.length > 0) {
          return res.json(result[0]['ratingAvg'])
      }

      // return a empty result etc
      return res.json({});
    })

您能检查结果[0]的值吗