防止 express 中的默认响应
preventing default response in express
app.use(express.static("public"));
app.post("/api/",(req, res) => {
const pyshell = new PythonShell("current.py");
pyshell.on("message", function (message) {
return res.json({result: message})
});
pyshell.end(function (err) {
if (err) {
console.log(err)
}
});
// here it sends responses automatically
});
app.listen(3000);
每当我 运行 此代码时,我都会收到 Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
错误。 pyshell.on()
是一个事件,我只想在那里发送响应。那么,如何防止发送默认/自动响应?我是节点和表达的初学者。
肯定是因为pyshellreturns多条消息
因此在下一个代码中,消息存储在一个数组中。
当 pyshell 完成时,数组被发送。
app.post("/api/",(req, res) => {
const pyshell = new PythonShell("current.py");
let messages = []
pyshell.on("message", function (message) {
messages.push(message)
});
pyshell.end(function (err) {
if (err) {
console.log(err)
} else {
res.json({result: messages})
}
});
// here it sends responses automatically
});
app.use(express.static("public"));
app.post("/api/",(req, res) => {
const pyshell = new PythonShell("current.py");
pyshell.on("message", function (message) {
return res.json({result: message})
});
pyshell.end(function (err) {
if (err) {
console.log(err)
}
});
// here it sends responses automatically
});
app.listen(3000);
每当我 运行 此代码时,我都会收到 Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
错误。 pyshell.on()
是一个事件,我只想在那里发送响应。那么,如何防止发送默认/自动响应?我是节点和表达的初学者。
肯定是因为pyshellreturns多条消息
因此在下一个代码中,消息存储在一个数组中。
当 pyshell 完成时,数组被发送。
app.post("/api/",(req, res) => {
const pyshell = new PythonShell("current.py");
let messages = []
pyshell.on("message", function (message) {
messages.push(message)
});
pyshell.end(function (err) {
if (err) {
console.log(err)
} else {
res.json({result: messages})
}
});
// here it sends responses automatically
});