アプリを meteor クラウド サーバーにデプロイすると、このエラーが発生し続けました。
Meteor コードは常に _.extend.get (app/packages/meteor/dynamics_nodejs.js:14:13) のファイバー内で _.extend.apply (app/packages/livedata/livedata_server.js:1268:57) で実行する必要があります。 _.extend.call (app/packages/livedata/livedata_server.js:1229:17) で Meteor.startup.Meteor.methods.streamTwit (app/server/server.js:50:24) で
ただし、私はすでにファイバー内にラップしています
streamTwit: function (twit){
var userid = '1527228696';
twit.stream(
'statuses/filter',
{ follow: userid},
function(stream) {
stream.on('data', function(tweet) {
Fiber(function(){
if(tweet.user.id_str === userid)
{
Meteor.call('addQn', tweet);
}
}).run();
console.log(tweet);
console.log('---------------------------------------------------------');
console.log(tweet.user.screen_name);
console.log(tweet.user.name);
console.log(tweet.text);
});
}
);
}
理由はわかりませんが、代わりに Meteor.bindEnvironment でラップする必要があると誰かが提案しました。したがって、私はこれをしました:
streamTwit: function (twit){
this.unblock(); // this doesn't seem to work
console.log('... ... trackTweets');
var _this = this;
var userid = '1527228696';
twit.stream(
'statuses/filter',
{ follow: userid},
function(stream) {
stream.on('data', function(tweet) {
Meteor.bindEnvironment(function () {
if(tweet.user.id_str === userid)
{
Meteor.call('addQn', tweet);
}
}, function(e) {
Meteor._debug("Exception from connection close callback:", e);
});
console.log(tweet);
console.log('---------------------------------------------------------');
console.log(tweet.user.screen_name);
console.log(tweet.user.name);
console.log(tweet.text);
});
}
);
}
//質問メソッドを追加
addQn:function(tweet){
questionDB.insert({'tweet': tweet, 'date': new Date()});
}
しかし、今では機能しません。これは、データを mongodb に挿入しようとしたときにのみ発生したことに気付きました。私のコードの問題は何ですか?ありがとう!これらのコードはすべて app/server/server.js に記述されています