Данные Socket.io в текст HTML

Я получаю такие данные, которые регистрируются в консоли с URL-адреса socket.io, который запускается при определенных событиях. Теперь все, что я хотел бы сделать, это получить от этого конкретные данные, например, сумму.

Я пробовал так много всего, чтобы просто получить значение количество и что-нибудь еще, но, похоже, ничего не работает.

Вот единственный код, который я использую в своем файле .php.

<script src='https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js' type='text/javascript'></script>
<script>
  const socketToken = 'mytokenishere'; //Socket token from /socket/token end point
  //Connect to socket
  const streamlabs = io(`https://sockets.streamlabs.com?token=${socketToken}`);
  //Perform Action on event
  streamlabs.on('event', (eventData) => {
    if (!eventData.for || eventData.for === 'streamlabs' && eventData.type === 'donation') {
      //code to handle donation events
      console.info(eventData.message);
    }
    if (eventData.for === 'twitch_account') {
      switch(eventData.type) {
        case 'follow':
          console.info(eventData.message);
          break;
        case 'subscription':
          //code to handle subscription events
          console.info(eventData.message);
          break;
        default:
          //default case
          console.info(eventData.message);
      }
    }
  });
</script>

Я пробовал делать что-то как document.write(eventData.message);, но это возвращает [object Object]
Я также пробовал document.write(["0"].amount);, который возвращает undefined

Я очень ценю все ответы, заранее спасибо, если вы знаете какое-либо решение!

Обновлено: document.write(JSON.stringify(eventData.message)); дает мне

[{
    "isTest":true,
    "formatted_amount":"$87.00",
    "amount":87,
    "message":"This is a test donation for $87.00.",
    "currency":"USD",
    "from":"John",
    "from_user_id":1,
    "_id":"c3135e2c8011e545091f020f8378***"
}] 

Похоже, это объект в массиве, мне нужно выяснить, как сделать так, чтобы это был всего лишь объект.

document.write(eventData.message[0].from); document.write(eventData.message[0].formatted_amount);
полученные результаты: Джон $ 87.00

Так было очень просто .. Спасибо!

Можете попробовать eventData.message[0].message?

Andrew Lohr 16.04.2018 19:46
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
105
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

eventData.message[0] должен предоставить вам базовый объект, который вы ищете.

у вас есть массив отправляемых объектов, поэтому вам нужно извлечь первый элемент этого массива, обратившись к индексу 0.

например eventData.message[0].amount должно быть 48

Обновлено: я видел ваше редактирование, в котором вы указываете

It looks like it's an object within an array, I need to figure out how to make it so it's only an object.

Просто создайте новый объект для псевдонима имени, когда вы его получите.

var data = eventData.message[0];
console.info(data.amount);

Клянусь, я пробовал это в какой-то момент, но это работает, спасибо!

Jon H.S. 16.04.2018 20:50

Доступ к элементам массива по номеру индекса просто. Например:

console.info(eventData.message[0]) // log first item of eventdata's message

Другие вопросы по теме