Как собрать строки, отправленные из angularJS, в массив NodeRED?

Я пытаюсь собрать строки, которые посылаю из AngularJS в массив NodeRED. Код AngularJS выглядит следующим образом

 this.user =
   {
     medName1: '',
     medTime1: ''
   },
   {
     medName2: '',
     medTime2: ''
   },
   {
    medName3: '',
    medTime3: ''
   };

Я собираю данные формы в medName1, medTime1,.. и так далее. Я пытаюсь отправить эти данные через websocket один за другим в NodeRED, используя следующий код

 this.register = function() {
 $scope.sock.send(this.user.medName1);
 $scope.sock.send(this.user.medTime1);
 $scope.sock.send(this.user.medName2);
 $scope.sock.send(this.user.medTime2);
 $scope.sock.send(this.user.medName3);
 $scope.sock.send(this.user.medTime3);
}

register() вызывается, когда я нажимаю кнопку "отправить".

Мой вопрос - как мне хранить эти строки в массиве nodeRED?, Поскольку способ, которым я его отправляю, строка всегда сохраняется в индексе массива 0, перезаписывая предыдущую строку. Я тоже пробовал

 $scope.sock.send(JSON.stringify(this.user));

но он отправляет всю вещь в виде строки в nodeRED, что делает невозможным извлечение значений, присвоенных medName1, medTime1 и т. д.

Может кто-нибудь, пожалуйста, предложите способ!.. Я буду очень признателен за вашу помощь.

2 ответа

Решение

Если вы отправите версию json.stingify, вы сможете использовать узел JSON в потоке Node-RED, чтобы преобразовать его обратно в нужный вам объект JavaScript.

Сначала сделайте this.user фактический массив:

this.user =[
   {
     medName1: '',
     medTime1: ''
   },
   {
     medName2: '',
     medTime2: ''
   },
   {
    medName3: '',
    medTime3: ''
   }];

Затем отправьте this.user массив за один шаг, как вы упомянули:

this.register = function() {
   $scope.sock.send(JSON.stringify(this.user));
}

Затем в NodeRED используйте это:

 var user_array = JSON.parse( the_serialized_array );
Другие вопросы по тегам