Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点:所需文件上的名称冲突_Javascript_Node.js - Fatal编程技术网

Javascript 节点:所需文件上的名称冲突

Javascript 节点:所需文件上的名称冲突,javascript,node.js,Javascript,Node.js,谢谢你的阅读 问题 如何避免名称冲突?这是我的问题吗?这是正确的说法吗 详细信息 var deviceA = require('./apple.js'); var apple1 = new deviceA({ ipAddress: "192.168.1.97", port: 23 }) apple1.connect(); apple1.on('connect', function(data) { console.log('Apple: Device Connected @' + ap

谢谢你的阅读

问题

如何避免名称冲突?这是我的问题吗?这是正确的说法吗

详细信息

var deviceA = require('./apple.js');
var apple1 = new deviceA({
  ipAddress: "192.168.1.97",
  port: 23
})
apple1.connect();
apple1.on('connect', function(data) {
  console.log('Apple: Device Connected @' + apple1.ipAddress);
})
apple1.on('disconnect', function(data) {
  console.log('Apple: Device Disconnected');
})

var deviceA = require('./banana.js');
var banana1 = new deviceA({
  ipAddress: "192.168.1.97",
  port: 23
})
banana1.connect();
banana1.on('connect', function(data) {
  console.log('Banana: Device Connected @' + banana1.ipAddress);
})
banana1.on('disconnect', function(data) {
  console.log('Banana: Device Disconnected');
})
var events = require('events');

var Apple = function(opts) {
  this.ipAddress = opts.ipAddress;
  this.port = opts.port;
};

Apple.prototype = new events.EventEmitter;
module.exports = Apple;

Apple.prototype.connect = function() {
  self = this;
  // telnet to apple
  var net = require('net');
  self.connection = net.createConnection(self.port, self.ipAddress);
  self.connection.setEncoding("UTF8");

  self.connection.on('connect', function(data) {
    self.emit('connect');
  });
  self.connection.on('disconncect', function(data) {
    self.emit('disconnect');
  });
}
var events = require('events');

var Banana = function(opts) {
  this.ipAddress = opts.ipAddress;
  this.port = opts.port;
};

Banana.prototype = new events.EventEmitter;
module.exports = Banana;

Banana.prototype.connect = function() {
  self = this;
  // telnet to banana
  var net = require('net');
  self.connection = net.createConnection(self.port, self.ipAddress);
  self.connection.setEncoding("UTF8");

  self.connection.on('connect', function(data) {
    self.emit('connect');
  });
  self.connection.on('disconncect', function(data) {
    self.emit('disconnect');
  });
}
我是node&javascript新手,我正在编写一个与不同类型的网络设备对话(tcp on 23)的应用程序

我决定为每个设备创建一个单独的js文件,并在我的
app.js
文件中要求它们

启动应用程序时,
apple1
连接,但只要
banana1
连接,我就会与
apple1
失去连接。我没有收到来自
apple1
的断开连接消息

我怀疑存在某种变量名冲突,因为当我最后更改apple连接的顺序时,香蕉就是我失去连接的那个。为了支持我的怀疑,在我的
banana.js
中,我分配
self=this,我把它改成了
somethingElse=this
。通过这样做,我能够同时连接到两个设备

app.js

var deviceA = require('./apple.js');
var apple1 = new deviceA({
  ipAddress: "192.168.1.97",
  port: 23
})
apple1.connect();
apple1.on('connect', function(data) {
  console.log('Apple: Device Connected @' + apple1.ipAddress);
})
apple1.on('disconnect', function(data) {
  console.log('Apple: Device Disconnected');
})

var deviceA = require('./banana.js');
var banana1 = new deviceA({
  ipAddress: "192.168.1.97",
  port: 23
})
banana1.connect();
banana1.on('connect', function(data) {
  console.log('Banana: Device Connected @' + banana1.ipAddress);
})
banana1.on('disconnect', function(data) {
  console.log('Banana: Device Disconnected');
})
var events = require('events');

var Apple = function(opts) {
  this.ipAddress = opts.ipAddress;
  this.port = opts.port;
};

Apple.prototype = new events.EventEmitter;
module.exports = Apple;

Apple.prototype.connect = function() {
  self = this;
  // telnet to apple
  var net = require('net');
  self.connection = net.createConnection(self.port, self.ipAddress);
  self.connection.setEncoding("UTF8");

  self.connection.on('connect', function(data) {
    self.emit('connect');
  });
  self.connection.on('disconncect', function(data) {
    self.emit('disconnect');
  });
}
var events = require('events');

var Banana = function(opts) {
  this.ipAddress = opts.ipAddress;
  this.port = opts.port;
};

Banana.prototype = new events.EventEmitter;
module.exports = Banana;

Banana.prototype.connect = function() {
  self = this;
  // telnet to banana
  var net = require('net');
  self.connection = net.createConnection(self.port, self.ipAddress);
  self.connection.setEncoding("UTF8");

  self.connection.on('connect', function(data) {
    self.emit('connect');
  });
  self.connection.on('disconncect', function(data) {
    self.emit('disconnect');
  });
}
apple.js

var deviceA = require('./apple.js');
var apple1 = new deviceA({
  ipAddress: "192.168.1.97",
  port: 23
})
apple1.connect();
apple1.on('connect', function(data) {
  console.log('Apple: Device Connected @' + apple1.ipAddress);
})
apple1.on('disconnect', function(data) {
  console.log('Apple: Device Disconnected');
})

var deviceA = require('./banana.js');
var banana1 = new deviceA({
  ipAddress: "192.168.1.97",
  port: 23
})
banana1.connect();
banana1.on('connect', function(data) {
  console.log('Banana: Device Connected @' + banana1.ipAddress);
})
banana1.on('disconnect', function(data) {
  console.log('Banana: Device Disconnected');
})
var events = require('events');

var Apple = function(opts) {
  this.ipAddress = opts.ipAddress;
  this.port = opts.port;
};

Apple.prototype = new events.EventEmitter;
module.exports = Apple;

Apple.prototype.connect = function() {
  self = this;
  // telnet to apple
  var net = require('net');
  self.connection = net.createConnection(self.port, self.ipAddress);
  self.connection.setEncoding("UTF8");

  self.connection.on('connect', function(data) {
    self.emit('connect');
  });
  self.connection.on('disconncect', function(data) {
    self.emit('disconnect');
  });
}
var events = require('events');

var Banana = function(opts) {
  this.ipAddress = opts.ipAddress;
  this.port = opts.port;
};

Banana.prototype = new events.EventEmitter;
module.exports = Banana;

Banana.prototype.connect = function() {
  self = this;
  // telnet to banana
  var net = require('net');
  self.connection = net.createConnection(self.port, self.ipAddress);
  self.connection.setEncoding("UTF8");

  self.connection.on('connect', function(data) {
    self.emit('connect');
  });
  self.connection.on('disconncect', function(data) {
    self.emit('disconnect');
  });
}
banana.js

var deviceA = require('./apple.js');
var apple1 = new deviceA({
  ipAddress: "192.168.1.97",
  port: 23
})
apple1.connect();
apple1.on('connect', function(data) {
  console.log('Apple: Device Connected @' + apple1.ipAddress);
})
apple1.on('disconnect', function(data) {
  console.log('Apple: Device Disconnected');
})

var deviceA = require('./banana.js');
var banana1 = new deviceA({
  ipAddress: "192.168.1.97",
  port: 23
})
banana1.connect();
banana1.on('connect', function(data) {
  console.log('Banana: Device Connected @' + banana1.ipAddress);
})
banana1.on('disconnect', function(data) {
  console.log('Banana: Device Disconnected');
})
var events = require('events');

var Apple = function(opts) {
  this.ipAddress = opts.ipAddress;
  this.port = opts.port;
};

Apple.prototype = new events.EventEmitter;
module.exports = Apple;

Apple.prototype.connect = function() {
  self = this;
  // telnet to apple
  var net = require('net');
  self.connection = net.createConnection(self.port, self.ipAddress);
  self.connection.setEncoding("UTF8");

  self.connection.on('connect', function(data) {
    self.emit('connect');
  });
  self.connection.on('disconncect', function(data) {
    self.emit('disconnect');
  });
}
var events = require('events');

var Banana = function(opts) {
  this.ipAddress = opts.ipAddress;
  this.port = opts.port;
};

Banana.prototype = new events.EventEmitter;
module.exports = Banana;

Banana.prototype.connect = function() {
  self = this;
  // telnet to banana
  var net = require('net');
  self.connection = net.createConnection(self.port, self.ipAddress);
  self.connection.setEncoding("UTF8");

  self.connection.on('connect', function(data) {
    self.emit('connect');
  });
  self.connection.on('disconncect', function(data) {
    self.emit('disconnect');
  });
}
如何避免名称冲突

不要使用变量

这是我的问题吗

对。是你造成的,你需要修复它

这是正确的说法吗

对!

如何修复它

不要重命名冲突变量,但是

如何预防


用于所有文件,分配给未声明的全局变量时会出现异常。

所需文件通过文件路径获取。(除非它们在节点_模块中可用)因此,不会发生此类冲突。我可以看到的另一件事是,您正在为这两个设备复制代码。您可以在javascript中创建一个设备类并从中创建两个实例。是的,您缺少
self
var
声明。使用严格模式!!!!调查显示。。。第一答案!