NodeJS - Ошибка LDAPJS: events.js: 160 throw er; // необработанное событие error - PullRequest
0 голосов
/ 28 июня 2019

все я новичок в nodejs и сталкиваюсь с этой проблемой при выполнении файла моего узла.Я нахожусь на centos 7. Когда я пытаюсь подключиться к LDAP с использованием LDAPJS.Он работает нормально, когда LDAP доступен, но затем не может подключиться к серверу, он показывает эту странную ошибку:

events.js: 160 throw er;// Необработанное событие 'error' ^

Ошибка: подключите EHOSTUNREACH 172.24.130.203:389 в Object.exports._errnoException (util.js: 1020: 11) в exports._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);
});

1 Ответ

0 голосов
/ 28 июня 2019

Как кажется, клиент ловит ошибки сокета и выдает их снова: Клиент - ошибка

Так что вы должны быть в порядке с чем-то вроде

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