次のコード:エラーが流星の起動結果でパブリッシュ時に配列をカーソルに変換する方法は?
Meteor.push("svse",function(){
if(UserUtils.isAdmin(this.userId)) //is Administrator?
return Svse.find();
var arr = ["1","1.2"]; //just a example
var nodes = Svse.find({sid:{$in:arr}}).fetch();
var newNodes = new Array();
for(i in nodes){
var newNode = nodes[i];
newNode["son"] = ArrayUtils.intersect(arr,newNode["son"]);
newNodes.push(newNode)
}
return newNodes;
});
ArrayUtils={};
Object.defineProperty(ArrayUtils,"intersect",{
value : function(a,b){
var ai=0;
var bi=0;
var result = new Array();
while(ai < a.length && bi < b.length){
if(a[ai] < b[bi]) {
ai++;
} else if(a[ai] > b[bi]){
bi++;
} else {
result.push(a[ai]);
ai++;
bi++;
}
}
return result;
}
});
:カーソルに配列を変換する方法
Exception from sub ac338EvWTi2tpLa7H Error: Publish function returned an array of non-Cursors
?または検索配列のArrayUtils.intersect()
のような配列を処理すると、hereが動作しますか?
お時間をありがとうございます!今では私のコードも同様に動作します!ありがとうございました!! –
興味深いことに、文字列の配列をパブリッシュするために追加されたメソッドを使用しようとしましたが、文字列 "predrag"をクライアントに置く代わりに、オブジェクト{0: "p"、1: " "r"、5: "a"、6: "g"、_id:0.39238154771737754}なぜか? –