首页 > 解决方案 > Express res.json({}) 不向 Angular 应用程序发送数据

问题描述

我试图在读取文件夹大小后传递 res.json。我没有在角度前端接收数据。以下是供参考的代码-

 const items = fs.readdirSync('//prod_storage1/shared/Computer_Ops/public/Users/');

      for(let folderperm of items){
       fs.access('//prod_storage1/shared/Computer_Ops/public/Users/'+folderperm,fs.constants.R_OK , (err) => {
         if (!err) {
           countFiles++
         } 
       });
      }
    let prom = new Promise((resolve,reject) =>{
      items.forEach(function(folder){
        try {
          
          getSize('//prod_storage1/shared/Computer_Ops/public/Users/'+folder,async (err, size) => {
            c++
            //&& size > 314572800
            if (!err ) { 
              try {
                  fullName = await ad.user(folder).get()
              } catch (error) {
                  console.log(error)
              } 
              counter++
              folderArr.push({fullName:fullName.cn,folderName:folder,size:(size / 1024 /1024 /1024 ).toFixed(2)})
              
              console.log(counter+'- '+fullName.cn+'~ '+folder+' : '+size);
              if(folderArr.length == countFiles){
                console.log('done')
                let folderSize = folderArr;
                folderSize.sort(function(a, b){return b.size-a.size});
                resolve(folderSize)
                
              }     
            }else{
              console.log(countFiles)
              console.log(c+'...'+folder)
            }
          })
        } catch (error) {
        
        console.log(error)
        }
      })
    })
    let finalRes = await prom;
    console.log(finalRes)
    res.status(204).send({'size':finalRes})
    console.log(res.headersSent)

标签: node.jsexpressangular7

解决方案


如果您将状态更改为 200,它应该可以工作。状态 204 是“无内容”,因此它不会发回 JSON。

res.status(204).send({value: something})

变成

res.status(200).send({value: something})

这与

res.send({value: something})

推荐阅读