【发布时间】:2020-09-02 08:37:14
【问题描述】:
我想使用forEach 循环,如果条件为真,我想通过res.send() 发送我的数据
const files = readFilesSync(path.resolve(uploadFolder + `_files`));
files.forEach(el => {
if (el.name.includes(fName)) {
res.send(el.name + el.ext);
} else {
console.log('Nothing')
}
});
在我得到多个“文件”之前它可以正常工作。如果 2 个文件的条件为真,我得到一个错误
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
【问题讨论】:
-
res.send()终止您的请求响应。在您发出回复后,您无法发送任何内容。你到底想达到什么目标? -
出现这个错误是因为你
send的回复。一旦你这样做,服务器将当前请求视为“完成”。如果您想发送文件列表,只需在之前“组装”列表并使用 singleres.send(fileNames)发送完整列表
标签: javascript node.js angular