如何将DockerEvents添加到我的Javascript

如何将DockerEvents添加到我的Javascript,javascript,node.js,Javascript,Node.js,我正在使用Dockerode,现在我想实现一个侦听器,因此我创建了一个侦听器,但当我想使用它时,我遇到了以下错误: ReferenceError: DockerEvents is not defined 我的代码如下所示: if (Meteor.isServer) { //publish the collection Meteor.publish('infosContainers', function readInfosContainers() { return InfosCo

我正在使用Dockerode,现在我想实现一个侦听器,因此我创建了一个侦听器,但当我想使用它时,我遇到了以下错误:

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 dockervents=。。。;任何地方

我想你是这样的:

var Docker = require('dockerode');
如果要使用docker事件,则必须执行相同的操作:

var DockerEvents = require('docker-events');
require'modulename'是在Node.js中加载模块的方式

如何使用docker事件已在其文档中描述:

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

似乎您没有加载模块或将其分配给DockerEvents以外的变量。你知道如何在Node.js中加载模块吗?不知道,但它带有“x RequiredMething”,但是如果我阅读docker事件github页面,我可以看到docker事件在docker中,我可以使用docker,因为我可以列出我的容器,停止它们,启动它们……为了创建docker,我做了var docker;docker=newDocker{socketPath:'/var/run/docker.sock'};我得到这个错误:错误:找不到npm模块“docker事件”。您是否忘记在“模块运行时”包中的package.js中调用“Npm.depends”?似乎您还没有安装docker事件。你需要安装它,如果你想使用它,就像任何其他npm模块。