Javascript 使用Mongoose更正查询,但forEach之后数组始终为空。Nodejs/MongoDB

Javascript 使用Mongoose更正查询,但forEach之后数组始终为空。Nodejs/MongoDB,javascript,arrays,node.js,mongodb,foreach,Javascript,Arrays,Node.js,Mongodb,Foreach,我想在异步方法中的forEach后面返回一个名称数组。for each和res.send都在Asyn内。方法。forEach工作得很好,但我总是得到一个空数组 这是我在网站侧的请求: function retrieveCharity(){ $.ajax({ type:"GET", url: "http://xxx.xxx.x.xx:9000/charity", success: function(data){ da

我想在异步方法中的forEach后面返回一个名称数组。for each和res.send都在Asyn内。方法。forEach工作得很好,但我总是得到一个空数组

这是我在网站侧的请求:

function retrieveCharity(){
    $.ajax({
        type:"GET",
        url: "http://xxx.xxx.x.xx:9000/charity",
        success: function(data){
             data.charities.forEach(function(charityName){
                 $(".charity-ul").append("<li>"+charityName+"</li>");
             })
        }
    })
}
所有的log.d和我要求在里面打印的信息都是正确的,它们都被打印出来了。问题是我返回的数组总是空的,但是(forEach)和res.send都在异步方法中

我总是在邮递员那里得到这个:

{
charities: { }
} 
控制台总是说:

Uncaught TypeError: undefined is not a function 
这一行:

 data.charities.forEach(function(charityName){
谁能帮帮我吗。我做错了什么


提前谢谢

我不认为
Object.prototype.forEach
是标准的。
data.charities
是一个对象而不是数组。您可以尝试从更改路由器代码

var charityMap = {};
charityMap[charity.\u id]=charity.teamName

使用charityMap.push(charity.teamName)


或者在客户端更改迭代。

我不认为
Object.prototype.forEach
是标准的<代码>数据。慈善机构是一个没有数组的对象。您可以尝试从
var charityMap={}更改路由器代码
var charityMap=[]或在客户端更改迭代。我将如何在客户端更改?你是对的。它不是一个数组,我也没有将数据放入其中。谢谢如果您想要积分,只需创建一个答案,否则我将回答我自己的问题。这里的这一行:charityMap[charity.\u id]=charity.teamName需要是charityMap.push(charity.teamName)。将此添加到您的答案中。秋千
var charityMap = {};
var charityMap = [];