Javascript 使用Mongoose更正查询,但forEach之后数组始终为空。Nodejs/MongoDB
我想在异步方法中的forEach后面返回一个名称数组。for each和res.send都在Asyn内。方法。forEach工作得很好,但我总是得到一个空数组 这是我在网站侧的请求: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
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 = [];