MongoDB没有将适当的数据返回给客户端?

时间:2020-04-12 06:14:48

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

当我尝试将高分数据库发送回客户端浏览器时,我只得到字符串“ [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] ^^^

    });

1 个答案:

答案 0 :(得分:0)

我知道了。我将发布答案,以防将来对任何人有帮助。

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

document.getElementById('yourscore').innerHTML = JSON.stringify(doc);
相关问题