2017-01-18 9 views
0

私はクライアント側から関数を呼び出し、サーバー側で関数がmongodbコレクションからデータを取得しています。そのデータを使用してd3 jsを使用して棒グラフを生成します。しかし、問題はサーバーからクライアントへの応答が得られていないことです。私は未来や繊維のような様々な方法を試しましたが、それでも解決されません。私は流星にとても新しいので、どんな助けもありがたいです。ここでmeteor jsのクライアントとサーバー側のやりとりの処理に問題があります

は私がこの問題を解決し、さらに使用するためにそれを使用する方法について説明助けてください、ここで

Meteor.call("ok", function(error, r) { 
    if (!error) { 
    console.log(r.content); 
    var len = Object.keys(JSON.parse(r.content)).length; 
    var svg = d3.select("svg") 
    var mySquare = new Array() 
    var data = JSON.parse(r.content); 
    data.forEach(function(d) { 
    mySquare[d.data] = svg.append("rect").attr("x",60+ (d.data*20)).attr("y",45-d.height).attr("height",d.height).attr("width",15).style("fill","#f7f7f7"); 
      }) 
svg.selectAll("rect") 
      .on("click", function(d){ 
       d3.select(this).transition(1000).style("fill", "#ff0000").duration(1000).transition(1000).style("fill", "#f7f7f7").duration(1000); 
      }) 
      } else { 
       console.log(error); 
      };}); 

とは、サーバー側のコードで、クライアント側の機能である

Meteor.methods({ 
    ok: function(options){ 
     Meteor.coll = new Mongo.Collection("test") 
     return Meteor.coll.find().fetch(); 
    },}); 

答えて

0

Meteorには、サブスクリプションと呼ばれるサーバーからデータを取得するメカニズムがすでに用意されています。

サーバーでコレクションを宣言してから、クライアントからコレクションを購読するだけです。 mongoデータベースからクエリを実行するには、ヘルパー関数が必要です。

あり詳細を説明こちらの記事です:https://www.discovermeteor.com/blog/understanding-meteor-publications-and-subscriptions/

はまた、流星ガイドはまた、パブリッシュおよびサブスクライブのメカニズムについての情報があります:https://docs.meteor.com/api/pubsub.html

+0

おかげミッケル。私は質問をする前にこのURLを見つけましたが、無視しました。私はそれを理解するにはあまりにも疲れていたと思うので、私は12時間以上コーディングしていた。 – LearningNew

関連する問題