2013-06-25 3 views
0

유토피아 클라우드 서버에 앱을 배포 할 때 계속이 오류가 발생했습니다.유성 서버에 배포 할 때 항상 유성 코드가 광섬유 내에서 실행되어야합니다.

항상 _.extend.get에서 섬유 내에서 실행해야합니다

유성 코드 (응용 프로그램/패키지/유성/dynamics_nodejs.js : 14 : 13) 에서 _.extend.apply (응용 프로그램/패키지/livedata/(app/packages/server.js : livedata_server.js : 1268 : 57) at _.extend.call (app/packages/livedata/livedata_server.js : 1229 : 17) at Meteor.startup.Meteor.methods.streamTwit 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에 작성되었습니다.

답변

0

서버 측에 Meteor.call을 사용할 필요가 없습니다. 이는 클라이언트 측 코드에만 해당됩니다. addQn을 직접 또는 더 잘 호출하기 만하면 코드 라인이 하나이기 때문에 인라인으로 작성하십시오.

+0

안녕하세요, 인라인 경우. 그것은 Meteor 코드가 Fiber 내에서 실행되어야 함을 나타냅니다. –

+0

'Meteor.bindEnvironment'는 Fiber에 넣습니다 ... –