首页 > 解决方案 > 在节点js中将它们发送到客户端错误后无法设置标头

问题描述

我有一个要求,我必须从多个服务器授权用户。根据所有服务器返回的响应,我想将值返回给 UI accrodingly。但是,我得到了无法设置标题错误。这是我的代码:

服务器.js

app.post('/auth/:data', function (req, res) {
var data1 = req.params.data;   
//connect to ldap server
ldapConnect.checkLDAPUser(data1, function(responseFromLdap){ 
 if(responseFromLdap!="invalidCredentials")
  {
    server2Connect.checkUser(responseFromLdap.uid,function(responseFromServer2)
      {         
        if(responseFromServer2=="success")
        {
           //connect to elastic search
           ESclient.getUserRolesfromES(responseFromLdap.uid,function(responseRolesFromES)
           {

                var rolesArr=responseRolesFromES.split(',')
            rolesArr.forEach(element => {
              ESclient.getScreensForRoles(element,function(resScreenFromES){

                  var screenArr=resScreenFromES.split(',');

                  screenArr.forEach(screen => {

                    if (!(screenArrFinal.includes(screen)))
                    {
                      screenArrFinal.push(screen);                          
                    }

                  });
                  if(rolesArr[rolesArr.length-1] === element){
                  console.log(screenArrFinal)
                  res.send(screenArrFinal)
                  }
           });

        }
      }
  }

理想情况下,我希望将 screenArrFinal 返回到 UI,以便根据他的角色显示用户屏幕。但是我在 res.send() 处遇到错误。谁能帮我吗?

标签: javascriptnode.jsasynchronous

解决方案


推荐阅读