gpt4 book ai didi

node.js - 为什么我们不能在 Express.js 中做多个 response.send?

转载 作者:IT老高 更新时间:2023-10-28 22:00:59 29 4
gpt4 key购买 nike

3 年前,我可以在 express.js 中执行多个 res.send
甚至编写一个 setTimeout 来显示实时输出。

response.send('<script class="jsbin" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>');
response.send('<html><body><input id="text_box" /><button>submit</button></body></html>');
var initJs = function() {
$('.button').click(function() {
$.post('/input', { input: $('#text_box').val() }, function() { alert('has send');});
});
}
response.send('<script>' + initJs + '</script>');

现在它会抛出:

Error: Can't set headers after they are sent

我知道 nodejs 和 express 已经更新。为什么现在不能这样做?还有什么想法吗?


找到了解决方案,但 res.write 不在 api 引用 http://expressjs.com/4x/api.html

最佳答案

也许你需要:response.write

response.write("foo");
response.write("bar");
//...
response.end()

res.send 隐式调用 res.write 后跟 res.end。如果您多次调用 res.send,它将在第一次工作。但是,由于第一个 res.send 调用结束了响应,因此您无法向响应中添加任何内容。

关于node.js - 为什么我们不能在 Express.js 中做多个 response.send?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25542521/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com