Javascript Sails.js将密钥和数据流传输到
我有一个有角度的前端,它将数据从sails后端(使用sails mysql适配器)填充到ui网格中。此数据集很大,在页面显示包含任何数据之前需要一段时间才能加载 我掌握了从sails启动并运行流媒体的基本知识:Javascript Sails.js将密钥和数据流传输到,javascript,angularjs,node.js,sails.js,node-streams,Javascript,Angularjs,Node.js,Sails.js,Node Streams,我有一个有角度的前端,它将数据从sails后端(使用sails mysql适配器)填充到ui网格中。此数据集很大,在页面显示包含任何数据之前需要一段时间才能加载 我掌握了从sails启动并运行流媒体的基本知识: findAllStream: function (req, res) { Model.stream().pipe(res); } 到目前为止,它将每个单独的数据段从模型流到前端。我正在使用角双簧管来消耗这条流: vm.myData = []; var obj = {}; var
findAllStream: function (req, res) {
Model.stream().pipe(res);
}
到目前为止,它将每个单独的数据段从模型流到前端。我正在使用角双簧管来消耗这条流:
vm.myData = [];
var obj = {};
var count = 0;
Oboe({
url: '/api/model/findAllStream',
pattern: '*',
start: function(stream) {
// handle to the stream
vm.stream = stream;
vm.status = 'started';
},
done: function(parsedJSON) {
vm.status = 'done';
}
}).then(function() {
// promise is resolved
console.log('done');
}, function(error) {
// handle errors
console.log('error');
}, function(node) {
// node received
switch (count) {
case 0:
obj['id'] = node;
break;
case 1:
regObj['property'] = node;
break;
case 2:
regObj['function'] = node;
break;
}
if (++count === 3) {
vm.myData.push(regObj);
count = 0;
obj = {};
}
});
从本质上讲,数据节点的顺序似乎是相同的,所以我只需跟踪接收到的节点数量,并以此方式构建对象。然后,我将每个对象推送到一个数组中,以便在uigrid中使用
例如,find()返回的数据为:
[
{
id: 1,
property: foo,
function: bar
},
{
id: 2,
property: stuff,
function: things
}
]
这适用于角度和uigrid。但有了stream,我只会得到:
1
foo
bar
2
stuff
things
这并不理想,尤其是当模型发生变化时。是否有方法发送密钥而不仅仅是值?或者从流中发送JSON?比如:
id: 1,
property: foo,
function: bar
id: 2,
property: stuff,
function: things
谢谢 结果是我用错了双簧管。我将匹配模式更改为“{id}”,一切都很好
Oboe({
url: '/api/model/findAllStream',
pattern: '{id}',
start: function(stream) {
// handle to the stream
vm.stream = stream;
vm.status = 'started';
},
done: function(parsedJSON) {
vm.status = 'done';
}
}).then(function() {
// promise is resolved
console.log('done');
}, function(error) {
// handle errors
console.log('error');
}, function(node) {
// node received
vm.gridOptions.data.push(node);
});