从mongodb获取数据

时间:2017-12-09 03:14:04

标签: node.js mongodb axios

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看起来像

enter image description here

来自我的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

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您的问题在

行中
channeldata.forEach((chn)=> {
            console.log(chn)
            var arr = chn
        });

您在每个循环中定义arr,这意味着arr只能在循环中使用

如果您在代码中将arr换成chn

res.status(200).json({
                    message: "channel success",
                    data: arr
                })

那应该有效