MongoDB не возвращает данные о проппере клиенту? - PullRequest
0 голосов
/ 12 апреля 2020

Когда я пытаюсь отправить базу данных рекордов в браузер клиентов, я просто получаю строку «[Object Object], [Object Object], ...» и т. Д., Пока база данных не закончится.

Странно то, что это только если я возвращаю его как внутренний HTML, потому что когда я возвращаю его через console.log (), он выводит правильные данные. Кто-нибудь знает, почему это так?

сервер. 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);

        });

    });

клиент. js

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

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

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

    });

1 Ответ

0 голосов
/ 12 апреля 2020

Я понял это. Я опубликую ответ, если в будущем это кому-нибудь поможет.

Из-за того, что mongoDB возвращает массив, если я просто отправлю строку через внутренний HTML, он вернет объект, так как я печатаю массив. следующий код на стороне клиента исправил это.

document.getElementById('yourscore').innerHTML = JSON.stringify(doc);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...