node.js - 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)
解决方案
如果您将状态更改为 200,它应该可以工作。状态 204 是“无内容”,因此它不会发回 JSON。
res.status(204).send({value: something})
变成
res.status(200).send({value: something})
这与
res.send({value: something})
推荐阅读
- python - 跨度标签之间的美丽汤提取文本
- makefile - 如何在 GNU make 中获取 makefile 的父目录的基本名称?
- elasticsearch - 在弹性搜索中忽略 TF-IDF
- python - 按行分组时如何合并熊猫数据框的字典
- mysql - 带有自己的 mysql 或全局 docker mysql 的 docker 容器
- python - opencv-ModuleNotFoundError:Spyder python 提示中没有名为“cv2”的模块
- perl - 如何打印第一个不同值的标量值
- c# - 将 LINQ 返回值转换为二维数组
- mysql - ReactJS,如何在显示数据库中的文本区域时编辑文本区域并更新值?
- r - 重新编辑:塑造不平衡面板数据以运行混合多项式回归的问题