我正在使用express 构建一个简单的服务器。一切正常,但每次我尝试硬刷新(cntr + R)我的页面时,我都会在控制台中收到这个恼人的错误。
错误 [ERR_HTTP_HEADERS_SENT]:将标头发送到客户端后无法设置标头
这是代码:
app.get('/index', (req, res) => {
const filePath = path.join(__dirname, 'public', 'index.html');
console.log(res.headersSent);
res.sendFile(filePath);
});
Run Code Online (Sandbox Code Playgroud)
console.log (res.headersSent)用于检查是否确实未设置标头(每次都会记录 false)。
我尝试发送一个简单的 JSON 而不是文件,并且没有发生错误:
app.get('/index', (req, res) => {
const filePath = path.join(__dirname, 'public', 'index.html');
console.log(res.headersSent);
res.json({status: 'All good'});
});
Run Code Online (Sandbox Code Playgroud)
仅当我使用 res.sendFile() 时才会出现该错误。一旦加载,index.html将请求一个index.js文件。也许这就是问题所在?但这不是一个不同的要求吗?
谢谢你!
编辑我尝试检查 sendFile() 回调函数中的错误。它是未定义的,即使控制台不断吐出“无法设置标头”错误