我正在使用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
});