Javascript 处理meteor js客户端和服务器端交互时遇到问题
代码中有以下场景,在客户端调用一个函数,在服务器端,该函数从mongodb集合获取数据,然后使用该数据使用D3JS生成条形图。但问题是我没有得到服务器到客户端的响应。我尝试了各种方法,如future和fibre,但仍然没有解决。我对meteor很陌生,所以非常感谢您的帮助 这是客户端函数Javascript 处理meteor js客户端和服务器端交互时遇到问题,javascript,mongodb,meteor,d3.js,Javascript,Mongodb,Meteor,D3.js,代码中有以下场景,在客户端调用一个函数,在服务器端,该函数从mongodb集合获取数据,然后使用该数据使用D3JS生成条形图。但问题是我没有得到服务器到客户端的响应。我尝试了各种方法,如future和fibre,但仍然没有解决。我对meteor很陌生,所以非常感谢您的帮助 这是客户端函数 Meteor.call("ok", function(error, r) { if (!error) { console.log(r.content); var len = Object
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();
},});
请帮助我解决这个问题,并解释如何使用它进一步使用。Meteor已经有一种从服务器获取数据的机制,称为订阅 您只需在服务器上声明集合,然后从客户端订阅它。您需要一个助手函数来从mongo数据库执行查询 这里有一篇文章解释了细节:
《流星指南》还提供了关于发布和订阅机制的信息:谢谢米克尔。在问这个问题之前,我偶然发现了这个URL,但我忽略了它。我写了12个多小时的代码,所以我想我太累了,无法理解它。