Javascript 如何使用res.write从Node js发送多个响应,以便数据显示在客户端中?
我想从res.write立即将数据发送到客户端,但数据在一次响应中只发送一次。如何发送多个响应,以便将数据实时发送到客户端Javascript 如何使用res.write从Node js发送多个响应,以便数据显示在客户端中?,javascript,html,css,node.js,reactjs,Javascript,Html,Css,Node.js,Reactjs,我想从res.write立即将数据发送到客户端,但数据在一次响应中只发送一次。如何发送多个响应,以便将数据实时发送到客户端 app.get('/api/simulator', (req,res) => { res.setHeader('Content-Type','text/html'); var spawn = require('child_process').spawn, ls = spawn('../abc.sh'); ls.stdout.on('data',
app.get('/api/simulator', (req,res) => {
res.setHeader('Content-Type','text/html');
var spawn = require('child_process').spawn,
ls = spawn('../abc.sh');
ls.stdout.on('data', function (data) {
console.log('stdout: ' + data.toString());
res.write(data.toString());
});
ls.stderr.on('data', function (data) {
console.log('stderr: ' + data.toString());
});
ls.on('exit', function (code) {
console.log('child process exited with code ' + code.toString());
res.end();
});
});
我想您只需添加另一行res.write(): -例如:
ls.stdout.on('data', function (data) {
console.log('stdout: ' + data.toString());
res.write(data.toString());
response.write("foo");
response.write("bar");
});
一个请求只能有一个响应,您必须为多个响应发出多个请求。更好的解决方案是用于流式处理。问题是,在几乎所有情况下,浏览器都会等待http请求完成,然后才会显示任何内容或向ajax调用返回任何内容。因此,即使您可能使用
res.write()
以增量方式发送数据,浏览器中的客户端通常在数据全部到达之前不会显示数据。如果你能更具体地说明你想做什么,也许我们可以提供更详细的帮助。webSocket连接允许您发送客户端立即接收的单个数据块。您可以依次添加res.write。