Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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 NodeJS-LDAPJS错误:events.js:160 thrower;//未处理的“错误”事件_Javascript_Node.js_Ldapjs - Fatal编程技术网

Javascript NodeJS-LDAPJS错误:events.js:160 thrower;//未处理的“错误”事件

Javascript NodeJS-LDAPJS错误:events.js:160 thrower;//未处理的“错误”事件,javascript,node.js,ldapjs,Javascript,Node.js,Ldapjs,我对nodejs都是新手,在执行我的节点文件时,我面临着这个问题。我在centos 7。当我尝试使用LDAPJS连接到LDAP时。当LDAP可用时,它可以正常工作,但无法连接到服务器。它显示以下奇怪的错误: events.js:160 投掷者;//未处理的“错误”事件 ^ 错误:连接EHOSTUNREACH 172.24.130.203:389 在Object.exports.\u errnoException util.js:1020:11 在导出时。主机端口util.js:1043:20除外

我对nodejs都是新手,在执行我的节点文件时,我面临着这个问题。我在centos 7。当我尝试使用LDAPJS连接到LDAP时。当LDAP可用时,它可以正常工作,但无法连接到服务器。它显示以下奇怪的错误:

events.js:160 投掷者;//未处理的“错误”事件 ^

错误:连接EHOSTUNREACH 172.24.130.203:389 在Object.exports.\u errnoException util.js:1020:11 在导出时。主机端口util.js:1043:20除外 在TCPConnectWrap.afterConnect[as oncomplete]net.js:1099:14

我希望捕获此错误并显示正确的错误消息

我试过使用这个:

 rm -rf node_modules && npm cache clean --force && npm install
但这没有帮助

我的package.json文件是:

{
  "name": "package",
  "version": "1.0.0",
  "description": "For LDAP ",
  "main": "index.js",
  "dependencies": {
    "ldap": "^0.7.1",
    "passport": "^0.4.0"
  },
  "devDependencies": {},
  "scripts": {
    "test": "node index.js"
  },
  "keywords": [
    "ldapjs"
  ],
  "author": "Rajan",
  "license": "ISC"
}
这是index.js文件:

var ldap = require('ldapjs');
var http = require('http');
var assert = require('assert');


var client = ldap.createClient({
    url: 'ldap://172.24.130.203/dc=india,dc=bizrtc,dc=com'
});

var basedn = "dc=test,dc=test,dc=test";

var opts = {
  filter: '(ipPhone=*)',
  scope: 'sub',
  attributes: ['ipPhone','mail','name','description']
};

client.bind('username', 'mysecret', function (err) {

client.search('dc=india,dc=bizrtc,dc=com', opts, function (err, search) {
    search.on('searchEntry', function (entry) {
      var user = entry.object;
      console.log("Users are " + user.ipPhone + "  Display Name is  " + user.name + " E-Mail is " + user.mail + " Password is  " + user.description);

    });

  });
});


client.unbind(function(err) {
  assert.ifError(err);
});

看起来,客户端捕获套接字错误并重新发出这些错误:

所以你应该对这样的事情很满意

client.on('error', err => { console.error(err) })

显示LDAP连接代码。错误显示为未处理的“error”事件,因此您需要做的就是:处理错误。清理模块缓存有什么帮助?您需要编写某种catch或.onerror代码。@ChrisG我已经在中添加了代码question@ChrisG-没错,但我不明白为什么它会在某些事件中显示错误。js:160 throw erIt是从仍然没有捕获错误的事件中继承的-我不知道我为什么尝试了它-对我来说,错误被捕获了。你在哪里打电话给客户。。。?请将其添加到您的源代码中。顺便说一句,您的package.json依赖于ldap,但您需要ldapjs。这似乎是两个不同的包,尽管它们看起来或实际上是兼容的。我想知道你的index.js在你更换了node_模块后如何运行。