【发布时间】:2020-11-02 10:54:32
【问题描述】:
我必须连接到 LDAP 服务器并根据特定 ID 查找用户。
我决定使用 ldapjs 模块。
我设法创建了我的客户端并绑定了他,以便我可以成功搜索用户。
我的问题是,因为我只使用 async/await,所以我不明白如何处理回调中的错误...例如使用 ldapjs 库中的这个简单代码:
public static async search(searchOptions: SearchOptions) {
LdapService.bind()
LdapService.getClient()?.search('ou=*****,ou=***,dc=****,dc=****', searchOptions, function (err, res) {
ifError(err)
res.on('searchEntry', function (entry) {
// ----------------------
// an error came from here
throw new Error('test')
// ----------------------
console.log('entry: ' + JSON.stringify(entry.object));
});
res.on('searchReference', function (referral) {
console.log('referral: ' + referral.uris.join());
});
res.on('error', function (err) {
console.error('error: ' + err.message);
});
res.on('end', function (result) {
console.log('status: ' + result?.status);
});
})
}
LdapService.getClient() 是一个返回 createClient 结果的单例方法 -> 工作正常
LdapService.bind() 是一种仅使用正确凭据与服务器绑定的方法 -> 工作正常
我只是无法处理我的错误“测试”...我应该如何处理它?
搜索方法真的是异步的吗?
我可以使用异步/等待方式吗? :P
PS:由于安全原因,DN 字符串 ("ou=,ou=,dc=,dc=") 被隐藏,代码运行良好,不会引发错误;)
【问题讨论】:
标签: javascript node.js ldapjs