执行以下代码时出现此错误:

getAggregatedRatings(query).then(ratings=>{
    if(ratings){
        return res.json(ratings);
    }else{
        return res.send(200);
    }
}).catch((error)=>{
    return res.send(500);
});

function getAggregatedRatings(query){
    movieRating.aggregate(query)
    .exec((err, ratings)=> {
        if (err || !ratings) {
            return Promise.reject(err);
        }
        else {
            return Promise.resolve(ratings);
        }
    });
}


请注意,“ getAggregatedRatings”将按预期返回查询结果。
请告知我我做错了。

最佳答案

您的getAggregatedRatings函数未返回承诺,或与此相关的任何内容,这说明了为什么尝试访问它时结果不确定。

尝试将其更改为此:

function getAggregatedRatings(query){
    return new Promise((resolve, reject) => {
        movieRating.aggregate(query)
        .exec((err, ratings)=> {
            if (err || !ratings) {
                reject(err);
            }
            else {
                resolve(ratings);
            }
        });
    })
}

关于node.js - Node.js-无法读取未定义的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49601860/

10-11 10:24