router.get('/channels', isLoggedIn, function(req, res) {
channel.find({}, function(err, channeldata) {
var channelMap = {};
console.log('channelMap:');
console.log(channelMap);
channeldata.forEach((chn)=> {
console.log(chn)
var arr = chn
});
if(err || channeldata === null){
res.status(404).send({
message: 'Channel Not Found',
data: []
})
}
else {
res.status(200).json({
message: "channel success",
data: arr
})
}
console.log(channelMap);
// res.send(userMap);
});
});
这是我如何实现我的GET,我正在尝试获取chn
看起来像
来自我的DB。以上是console.log(chn)
我试着通过
来做到这一点axios.get('/channels').then( (res) => {
console.log(res);
}).catch( (err) => {
console.log(err);
});
在我的前端,但应用程序崩溃,并给我一个错误消息说
events.js:160
throw er; // Unhandled 'error' event
^
ReferenceError: arr is not defined
我做错了什么?
答案 0 :(得分:1)
您的问题在
行中channeldata.forEach((chn)=> {
console.log(chn)
var arr = chn
});
您在每个循环中定义arr
,这意味着arr
只能在循环中使用
如果您在代码中将arr
换成chn
res.status(200).json({
message: "channel success",
data: arr
})
那应该有效