在Angular 12中解决ldapjs polyfill错误的一种方法是'buffer”和“stream”包添加为依赖项,然后在polyfills.ts文件中导入它们。具体实现方法如下:
1.通过以下命令安装依赖项:
npm install buffer stream --save
2.在polyfills.ts文件中添加以下代码:
import 'buffer'; import 'stream';
3.重新启动Angular应用,该错误应该得到解决。
示例代码:
import { Component, OnInit } from '@angular/core'; import * as ldapjs from 'ldapjs';
@Component({ selector: 'app-ldap-test', templateUrl: './ldap-test.component.html', styleUrls: ['./ldap-test.component.css'] }) export class LdapTestComponent implements OnInit {
constructor() { }
ngOnInit(): void { const client = ldapjs.createClient({ url: 'ldap://ldap.forumsys.com:389' });
client.bind('cn=read-only-admin,dc=example,dc=com', 'password', (err) => {
if (err) {
console.log(err);
}
client.search('dc=example,dc=com', {
filter: '(objectclass=*)',
scope: 'sub'
}, (err, res) => {
if (err) {
console.log(err);
}
res.on('searchEntry', (entry) => {
console.log('entry: ' + JSON.stringify(entry.object));
});
res.on('searchReference', (referral) => {
console.log('referral: ' + referral.uris.join());
});
res.on('error', (err) => {
console.error('error: ' + err.message);
});
res.on('end', (result) => {
console.log('status: ' + result.status);
});
});
});
}
}
这个组件使用ldapjs库来连接ldap服务器并搜索目录。由于ldapjs使用了Buffer和Stream API,上述错误可能会发生。为了解决这个问题,我们添加了buffer和stream依赖项并导入它们。现在,