从 mongodb 获取数据
Getting a data from mongodb
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
来自我的数据库。以上是 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
我做错了什么?
您的问题在行
channeldata.forEach((chn)=> {
console.log(chn)
var arr = chn
});
您在 for each 循环中定义了 arr
,这意味着 arr
只能在 循环中使用。
如果您在代码中将 arr
换成 chn
res.status(200).json({
message: "channel success",
data: arr
})
那应该可以了
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
来自我的数据库。以上是 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
我做错了什么?
您的问题在行
channeldata.forEach((chn)=> {
console.log(chn)
var arr = chn
});
您在 for each 循环中定义了 arr
,这意味着 arr
只能在 循环中使用。
如果您在代码中将 arr
换成 chn
res.status(200).json({
message: "channel success",
data: arr
})
那应该可以了