NodeJS - LDAPJS 错误:事件.js:160 抛出器;未处理的'error'事件



我对nodejs的新手,我在执行节点文件时面临此问题。我在CentOS 7上。当我尝试使用LDAPJ连接到LDAP时。当LDAP可用时,它可以正常工作,但是它无法连接到服务器,它显示了此怪异的错误:

events.js:160 投掷er;//未经处理的"错误"事件 ^

错误:连接Ehostunreach 172.24.130.203:389 在object.exports._errnoexception(util.js:1020:11( at enforts._ExceptionWithHostport(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) })

最新更新