【问题标题】:Meteor code must always run within a Fiber. Try wrapping callbacks that you pass to non-Meteor libraries with Meteor.bindEnvironmentMeteor 代码必须始终在 Fiber 中运行。尝试使用 Meteor.bindEnvironment 包装传递给非 Meteor 库的回调
【发布时间】:2018-04-07 09:40:11
【问题描述】:

我正在调用 Meteor 中的 AWS 服务以获取 imageId。成功获取imageId 后,我想将其插入Mongo.Collection,但我的插入代码不起作用,并出现以下错误:

错误:Meteor 代码必须始终在 Fiber 中运行。尝试使用 Meteor.bindEnvironment 包装传递给非 Meteor 库的回调。

这是我的代码:

var ec2 = new AWS.EC2();
var params = {
  DryRun: false,
  Owners: [
    '12345678'
  ]
};
ec2.describeImages(params, function(err, data) {
  if (err) { 
    console.log(err); // an error occurred
  } else {  
    var strData= JSON.stringify(data)

    var Images =  strData.Images
    var jsonData = JSON.parse(strData);

    var arrImages = jsonData.Images;

    var _ImageId=arrImages[0].ImageId;
    console.log("AMI IMAGE  is "+_ImageId)

    CreateInstense.insert({
      AMIIMAGE:_ImageId,
      InstenceId:"instanceId"
    });
  }
});  

【问题讨论】:

    标签: meteor


    【解决方案1】:

    你应该完全按照你的错误所说的去做:用Meteor.bindEnvironment包装你的回调。

    ec2.describeImages(params, Meteor.bindEnvironment(function (err, data) {
      // ...
    }));
    

    【讨论】:

    • 不知道为什么有人不赞成你,这显然是正确的答案。我投了赞成票。
    猜你喜欢
    • 2015-03-02
    • 2017-10-03
    • 2017-08-16
    • 1970-01-01
    • 2013-12-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    相关资源
    最近更新 更多