【发布时间】:2016-04-15 15:35:29
【问题描述】:
当我使用 Meteor 1.2 时,我会在我的服务器上使用以下代码来查询用户数据和朋友数据:
function Facebook(accessToken) {
this.fb = Meteor.npmRequire('fbgraph');
this.accessToken = accessToken;
this.fb.setAccessToken(this.accessToken);
this.options = {
timeout: 3000,
pool: {maxSockets: Infinity},
headers: {connection: "keep-alive"}
}
this.fb.setOptions(this.options);
}
Facebook.prototype.query = function(query, method) {
var self = this;
var method = (typeof method === 'undefined') ? 'get' : method;
var data = Meteor.sync(function(done) {
self.fb[method](query, function(err, res) {
done(null, res);
});
});
return data.result;
}
Facebook.prototype.getUserData = function() {
return this.query('me');
}
Facebook.prototype.getFriendsData = function() {
return this.query('/me/friends');
}
当我将项目更新到 Meteor 1.3 时,我使用“meteor npm install --save fbgraph”来安装 fbgraph,但我发现 'npmRequire' 不再有效,所以我将其替换为 'require',如下所示:
function Facebook(accessToken) {
this.fb = require('fbgraph');
this.accessToken = accessToken;
this.fb.setAccessToken(this.accessToken);
this.options = {
timeout: 3000,
pool: {maxSockets: Infinity},
headers: {connection: "keep-alive"}
}
this.fb.setOptions(this.options);
}
但是我仍然收到此错误:调用方法“getFriendsData”时出现异常 TypeError: Object [object Object] has no method 'sync'
所以我的问题是 Meteor 1.3 中是否有与 Meteor 1.2 的“Meteor.sync”等效的功能?如果没有,那么如果没有,我应该如何更改 fb 查询代码以使其与 Meteor 1.3 一起使用。
【问题讨论】:
标签: javascript facebook meteor npm