【问题标题】:Getting a data from mongodb从 mongodb 获取数据
【发布时间】:2017-12-09 03:14:03
【问题描述】:
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

我做错了什么?

【问题讨论】:

    标签: node.js mongodb axios


    【解决方案1】:

    你的问题就在下面

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

    您在 for each 循环中定义了arr,这意味着arr 只能在内部循环中使用。

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

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

    那应该可以了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2018-02-18
      • 2020-08-22
      • 2019-09-29
      • 1970-01-01
      相关资源
      最近更新 更多