我正在使用Dockerode,现在我想实现一个侦听器,所以我建立了docker-events,但是当我想使用它时,出现了这个错误:

ReferenceError: DockerEvents is not defined


我的代码如下所示:

if (Meteor.isServer) {
  //publish the collection
  Meteor.publish('infosContainers', function readInfosContainers() {
    return InfosContainers.find({});
  });
}

Meteor.startup(() => {
  console.log("startup server");
  //at the start I create the docker object
  docker = new Docker({socketPath: '/var/run/docker.sock'});

  //create the docker events
  emitter = new DockerEvents({
    docker: new Dockerode(docker),
  });

  //maybe I need to create it like this
  emitter = new DockerEvents(docker);
  //start the emitter
    emitter.start();
});

/**
* this method listen if a container Start
**/
emitter.on("start", function(message) {
  console.log("container started: %j", message);
});


有人知道我在做什么错吗?感谢您的帮助

最佳答案

该错误表示您正在尝试访问不存在的变量,即您在任何地方都没有var DockerEvents = ...;

我假设您这样加载dockerode

var Docker = require('dockerode');


如果要使用docker-events,则必须执行以下操作:

var DockerEvents = require('docker-events');


require('modulename')是如何在Node.js中加载模块。

docker-event的使用方法已在其文档中说明:

var emitter = new DockerEvents({
  docker: docker, // since you defined docker earlier
});

10-05 19:46