【问题标题】:MongoDB not returning propper data to client?MongoDB没有向客户端返回正确的数据?
【发布时间】:2020-04-12 14:45:29
【问题描述】:

当我尝试将高分数据库发送回客户端浏览器时,我只会得到字符串“[Object Object], [Object Object], ...”等等,直到数据库结束。

奇怪的是,只有当我将它作为 innerHTML 返回时,因为当我通过 console.log() 返回它时,它会打印出正确的数据。有谁知道为什么会这样?

server.js

    socket.on('hsGo', function() {

        db.collection('dat').find({}, {projection: {_id: 0}})
        .sort({highscore : -1})
        .limit(10).toArray()
        .then(function (doc) {

            io.to(socket.id).emit('topPlayers', doc);

        });

    });

client.js

    socket.on('topPlayers', function(doc) {

        console.log(doc); 
        //Prints practically the correct data ^^^

        document.getElementById('yourscore').innerHTML = doc; 
        //prints [object object] ^^^

    });

【问题讨论】:

    标签: javascript node.js string mongodb socket.io


    【解决方案1】:

    我想通了。我会发布答案,以防将来对任何人有帮助。

    由于 mongoDB 返回一个数组,如果我只是通过 innerHTML 发送字符串,它将返回一个对象,因为我正在打印数组。客户端的以下代码修复了它。

    document.getElementById('yourscore').innerHTML = JSON.stringify(doc);
    

    【讨论】:

      猜你喜欢
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-11
      • 2021-07-06
      • 2016-11-12
      • 1970-01-01
      相关资源
      最近更新 更多