将对象从mongoDB发送到客户端socket.io

时间:2017-09-04 20:24:11

标签: javascript jquery node.js socket.io

我需要帮助在客户端显示对象属性

服务器

socket.on('question', (data) => {
  Question.count().exec((err, count) => {
    var random = Math.floor(Math.random() * count);
    Question.findOne().skip(random).exec(
      function(err, data) {
        socket.emit('data', {
          question: data.question,
          correctAnswer: data.correct_answer,
          incorrectAnswer1: data.incorrect_answers[0],
          incorrectAnswer2: data.incorrect_answers[1],
          incorrectAnswer3: data.incorrect_answers[2]
        });
      });
  });
});

客户端

socket.on('data', function(data) {
  if (data) {
    $('#questions').html('');
    $('#questions').append('<li>' + question + '</li>')
  }
});

$('#answer').on('click', function(e){
    e.preventDefault();
    socket.emit('question', {'data':$(this).serializeArray()});
});

I only get displayed this

我只能显示这个

我想在

下面显示问题和答案

1 个答案:

答案 0 :(得分:1)

您可以在data变量中获取数据。因此,您需要的每个信息都存储在里面。 使用console.log(data)查看其中的内容。始终显示您获得的内容。

我不知道你是如何建立你的问题对象的,但是这样的事情应该有效

socket.on('data', function(data) {
  if (data) {
    $('#questions').html('');
    $('#questions').append('<li>' + data.title + '</li>')
  }
});