【发布时间】:2021-05-11 12:12:48
【问题描述】:
我有这个简单的服务器来玩 express 和 node。当我在 app.get() 方法中调用函数时出现此错误。我在互联网上搜索过,但仍然无法弄清楚这里发生了什么。
错误
http_outgoing.js:518 throw new ERR_HTTP_HEADERS_SENT('set'); ^ Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client at ServerResponse.setHeader (_http_outgoing.js:518:11) at Array.write (G:\Project\Node Projects\Automater\node_modules\finalhandler\index.js:285:9) at listener (G:\Project\Node Projects\Automater\node_modules\on-finished\index.js:169:15) at onFinish (G:\Project\Node Projects\Automater\node_modules\on-finished\index.js:100:5) at callback (G:\Project\Node Projects\Automater\node_modules\ee-first\index.js:55:10) at IncomingMessage.onevent (G:\Project\Node Projects\Automater\node_modules\ee-first\index.js:93:5) at IncomingMessage.emit (events.js:327:22) at endReadableNT (_stream_readable.js:1221:12) at processTicksAndRejections (internal/process/task_queues.js:84:21) { code: 'ERR_HTTP_HEADERS_SENT' }
这是我的代码
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
app.get('/user',(req,res,next) =>{
log(req,res,next);
res.send('user');
})
app.get('/',(req,res,next) => {
res.send('Success');
});
function log(req,res,next){
console.log('Logger !!!');
next();
}
app.listen(port, () => console.log(`listening on port ${port}!`));
【问题讨论】:
-
这里我想做的是在
app.get()中调用一个函数。当我像app.get('/user',log,(req,res,next) =>{ res.send('user'); })一样通过它时,它工作正常。但是当我在res.send()上方的函数中调用log()函数时,它会给出这个错误
标签: node.js express error-handling