I am trying to deploy my meteor application on a server, but always have this error in the meteor log
Fri Jun 21 2013 11:39:31 GMT+0000 (UTC)] INFO HIT /img/bg.png 183.90.41.21 [Fri Jun 21 2013 11:39:32 GMT+0000 (UTC)] INFO HIT /favicon.ico 183.90.41.21 [Fri Jun 21 2013 11:39:41 GMT+0000 (UTC)] INFO HIT /form 183.90.41.21 [Fri Jun 21 2013 11:39:42 GMT+0000 (UTC)] INFO HIT /favicon.ico 183.90.41.21 [Fri Jun 21 2013 11:39:49 GMT+0000 (UTC)] WARNING }).run(); ^ [Fri Jun 21 2013 11:39:49 GMT+0000 (UTC)] WARNING app/server/server.js:53 [Fri Jun 21 2013 11:39:49 GMT+0000 (UTC)] WARNING Error: Meteor code must always run within a Fiber at _.extend.get (app/packages/meteor/dynamics_nodejs.js:14:13) at _.extend.apply (app/packages/livedata/livedata_server.js:1268:57) at _.extend.call (app/packages/livedata/livedata_server.js:1229:17) at Meteor.startup.Meteor.methods.streamTwit (app/server/server.js:51:22)
but I already wrapped it in Fiber and works well locally. I really don't know what the problem is. Appreciate if someone can help.
//server.js
Meteor.startup(function () { var require = Npm.require; var fs = require('fs'); var path = require('path'); var base = path.resolve('.'); var isBundle = fs.existsSync(base + '/bundle'); var modulePath = base + (isBundle ? '/bundle/static' : '/public') + '/node_modules'; var ntwitter = require(modulePath + '/ntwitter'); var Fiber = require(modulePath + '/fibers'); var twit = new ntwitter({ consumer_key: 'my key', consumer_secret: 'my key', access_token_key: 'my key', access_token_secret: 'my key' }); Meteor.methods({ postText : function(questionText){ twit.verifyCredentials(function (err, data) { if (err) { console.log("Error verifying credentials: " + err); process.exit(1); } }).updateStatus(questionText, function (err, data) { if (err) { console.log('Tweeting failed: ' + err); return false; } else { console.log('Success!'); return true; } } ); }, 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('----------------------tracking tweet-----------------'); 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()}); } }); Fiber(function(){ Meteor.call('streamTwit', twit); }).run(); });
PS: I am replacing my OAuth key. thanks in advance
source share