0
我嘗試通過Meteor服務器從LDAP服務器獲取數據到客戶端。 但LDAP請求是異步的,並且該方法返回false,而不是在ldap.search函數調用中收集的結果。那麼,如何在數據準備好的情況下同步調用ldap或觸發客戶端上的事件?Meteor.methods:通過內部回調將數據返回給客戶端
//defined on serverside
Meteor.methods({
searchPerson: function(account){
var data = null;
var LDAP = Npm.require('LDAP');
var ldap = new LDAP({uri: 'ldaps://ldap-server', version: 3});
var search_options = {
base: 'ou=xxx,dc=yyy,dc=zzz',
scope: '1',
filter: '(uid='+account+')',
attrs: 'surname, givenname, mail'
};
var bind_options = {
binddn: 'cn=aaa,ou=bbb,dc=ccc,dc=ddd',
password: 'password'
};
ldap.open(function(err) {
if (err) {
throw new Meteor.Error('Can not connect');
}
ldap.simpleBind(bind_options, function(err){
if (err){
throw new Meteor.Error('Can not bind');
}
ldap.search(search_options, function(err, data){
if (err){
throw new Meteor.Error('Error occured');
}
return data;
});
});
});
return false;
}
});
非常感謝。
torrofs
謝謝你指出我的答案。這正是我所期待的。 –