如何在 NodeRED 数组中收集从 angularJS 发送的字符串?

How to collect strings, sent from angularJS, in NodeRED array?

我正在尝试收集从 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);
}
当我点击 "submit" 按钮时,

register() 被调用。

我的问题是 - 如何将这些字符串存储在 nodeRED 数组中?。因为我发送它的方式,字符串总是存储在数组索引 0 中,覆盖以前的字符串。我也试过

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

但它将整个内容作为字符串发送到 nodeRED,这使得无法提取分配给 medName1、medTime1 等的值。

任何人都可以提出一个方法吗!...非常感谢您的帮助。

首先,让你的 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 );

如果发送 json.stingify 版本,则可以在 Node-RED 流中使用 JSON 节点将其转换回所需的 JavaScript 对象。