2014-05-08 26 views
-2

我正在使用此模块tedious进行连接。我尝试使用MSSQL中的数据填充集合时遇到问题。如何在流星中制作繁琐的异步

我的代码迄今:

http://pastebin.com/q4ByRCbW

Meteor.startup(function() { 

    var Request = Meteor.require('tedious').Request; 
    var Connection = Meteor.require('tedious').Connection; 

    var config = { 
     userName: 'xxxxx', 
     password: 'xxxx', 
     server: '197.xxx.xxx.xxx', 

     // If you're on Windows Azure, you will need this: 
     options: { 
      encrypt: true, 
      debug: { 
       packet: true, 
       data: true, 
       payload: true, 
       token: false, 
       log: true 
      } 
     } 
    }; 

    var connection = new Connection(config); 
    var asnycWrapFunc = Async.wrap(connection.execSql); 
    var rettarr = []; 

    function executeStatement() { 
     Fiber(function(){ 
      request = new Request("select * from AccountSummary", function(err, rowCount) { 
       if (err) { 
       console.log(err); 
       } else { 
       console.log(rowCount + ' rows'); 
       } 
      }); 
     request.on('row', function(columns) { 
      aaary = []; cnting = 0; 
      columns.forEach(function(column) { 
       console.log(column.value); 
       aaary.push(column.value); 
      }); 
      if (AccountSummary.find().count() === 0){ 
       AccountSummary.insert({ID:aaary[0], ClientNo:aaary[1], ClientName:aaary[2]}); 
      } 

     }); 
     //rettarr.push(aaary); 
     }).run(); 

     asnycWrapFunc(request); 
     //return rettarr; 
    } 

    connection.on('connect', function(err) { 
     // If no error, then good to go... 
      var res = executeStatement(); 
      // aaary = res[0]; 

      console.log(res); 
      errr = err; 
    }); 
}); 
+1

什么样的问题?问题是什么?请在此发布相关代码部分,说明您期望实现的目标以及获得的内容。 –

+0

欢迎来到SO。请不要依靠外部网站来托管您的代码,而是在您的问题中包含相关部分。而且它仍然缺少您所拥有的问题,编辑您的问题以添加细节并使其尽可能清晰。 – nikoshr

+0

我将代码粘贴到pastebin中。 http://pastebin.com/q4ByRCbW。我遇到的错误范围从光纤未定义到流星代码必须始终在光纤内运行。我只是想让别人知道如何在流星中正确包装单调乏味的函数,这样我就会得到这些错误 – user1863492

回答