【发布时间】:2019-11-10 03:20:26
【问题描述】:
我是 nodejs 的新手,我在执行我的节点文件时遇到了这个问题。我在 centos 7 上。当我尝试使用 LDAPJS 连接到 LDAP 时。当 LDAP 可用时它工作正常,但是它无法连接到服务器,它显示这个奇怪的错误:
events.js:160 投掷者; // 未处理的“错误”事件 ^
错误:连接 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);
});
【问题讨论】:
-
显示您的 LDAP 连接代码。错误显示
Unhandled 'error' event,所以您需要做的就是:处理错误。清理模块缓存有什么帮助?您需要编写某种catch或.on("error")代码。 -
@ChrisG 我添加了有问题的代码
-
@ChrisG - 是的,但我不明白为什么它在某些
events.js:160 throw er中显示错误@
标签: javascript node.js ldapjs