【发布时间】:2023-04-01 08:13:01
【问题描述】:
我创建了一个小项目。我刚刚添加了一个参数控件,但是如果我不发送id 我会收到此错误。问题出在哪里?
错误:发送后无法设置标头
const Express = require('express');
const BodyParser = require('body-parser');
const app = Express();
app.use(BodyParser.json());
app.use(BodyParser.urlencoded({extended: false}));
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
res.header('Access-Control-Allow-Methods', 'POST');
if ('OPTIONS' == req.method) {
res.header('Access-Control-Allow-Methods', 'POST');
return res.send(200);
}
next();
});
app.get('/', (req, res) => {
res.write('Test');
res.end();
});
app.post("/test", (req, res) => {
if (!req.body.id) {
res.send(200).json({code: 400, message: 'error'});
return;
}
})
server = app.listen(8000);
【问题讨论】:
-
当你使用 res.json() 时,默认会断开连接,不需要做 res.end()。 res.json() 和 res.end() 也是一个响应,因此在节点中您只能发送一次响应。发送后无法设置标头:错误意味着您尝试多次发送响应
标签: javascript node.js