【问题标题】:Sending object from mongoDB to client socket.io将对象从 mongoDB 发送到客户端 socket.io
【发布时间】:2018-02-13 01:54:45
【问题描述】:

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

服务器

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()});
});

我只显示这个

我想在下面显示问题和答案

【问题讨论】:

    标签: javascript jquery node.js socket.io


    【解决方案1】:

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

    我不知道你是如何构建你的问题对象的,但是类似的东西应该可以工作

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

    【讨论】:

    • 这会在服务器打印对象上添加未定义的控制台日志。
    • 在你的客户端做一个console.log。
    • 好的,这行得通。它将数据存储在另一个数据对象中,我不知道为什么。 @sheplu
    猜你喜欢
    • 2018-08-12
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 2013-11-16
    • 1970-01-01
    • 2014-04-24
    相关资源
    最近更新 更多