我想使用ejs模板引擎重新显示一个网页,该引擎必须显示几个关于用户的信息。
在这个项目中,我有:
包含所有de group名称的名为groupTab的组数组:var groupTab = [" categ1"," categ2"," categ3"]
使用npm包activedirectory的活动目录连接,该目录连接能够使用以下方法从一个组获取用户:getUsersForGroup。
使用以下代码,我可以显示每个组中的所有用户:
for(var i = 0 ; i<groupTab.length; i ++){
ad.getUsersForGroup(groupTab[i], function(err,users){
if(err) console.log(JSON.stringify(err);
else{
console.log(JSON.stringify(users); //This displays all the users that are in categ1 categ 2 and categ 3 on the console
}
}
}
问题在于,我无法返回此阵列客户端,而且我完全卡住了。我使用getUsersForGroup的回调测试了一些函数,但是我无法管理打印这个数组。
我想要做的就是那些函数调用getUsersforGroup:
app.get('/', function(req,res){
afunction(err,users){
res.render('index.ejs',{users: users});
}
});
我该怎么做?
答案 0 :(得分:0)
Haven没有对它进行测试,但是这样的事情应该可以解决问题。
function getUsers (next) {
var allUsers = [],
i;
for (i = 0 ; i < groupTab.length; i++) {
ad.getUsersForGroup(groupTab[i], function(err, users){
if (err) {
console.log(JSON.stringify(err);
}
else {
allUsers = allUsers.concat(users);
}
if (i === groupTab.length - 1) {
next(allUsers);
}
}
}
}
app.get('/', function (req,res) {
getUsers(function (users) {
res.render('index.ejs',{users: users});
});
});
答案 1 :(得分:0)
这个技巧对我有用
function getUsers (next) {
var allUsers = [],
var a=0;
for (var i = 0 ; i < groupTab.length; i++) {
ad.getUsersForGroup(groupTab[i], function(err, users){
if (err) {
console.log(JSON.stringify(err);
}
else {
allUsers = allUsers.concat(users);
a++
}
if (a == groupTab.length) {
next(allUsers);
}
}
}
}
app.get('/', function (req,res) {
getUsers(function (users) {
res.render('index.ejs',{users: users});
});
});