Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有到'的超时;回答:写';node.js中的方法?_Javascript_Node.js_Express - Fatal编程技术网

Javascript 是否有到'的超时;回答:写';node.js中的方法?

Javascript 是否有到'的超时;回答:写';node.js中的方法?,javascript,node.js,express,Javascript,Node.js,Express,我使用Mongoose游标检索大量数据,并在接收每个部分时逐步发送。为此,我使用方法res.write() 从上面的代码中可以看出,我有一个变量limit,可以知道何时编写响应的下一部分。如果这个变量太大,则需要更多的时间来组装每个部件,并且在我编写它之前查询就完成了。(如果我减少这个变量,它可以正常工作) 发生这种情况时,响应只包含字符串:“[”。就好像它会在一定时间后调用方法res.end() 我的问题是:使用res.write()方法时是否有超时,然后(如果不继续写入或发送响应)res.e

我使用Mongoose游标检索大量数据,并在接收每个部分时逐步发送。为此,我使用方法
res.write()

从上面的代码中可以看出,我有一个变量limit,可以知道何时编写响应的下一部分。如果这个变量太大,则需要更多的时间来组装每个部件,并且在我编写它之前查询就完成了。(如果我减少这个变量,它可以正常工作)

发生这种情况时,响应只包含字符串:
“[”
。就好像它会在一定时间后调用方法
res.end()


我的问题是:使用
res.write()
方法时是否有超时,然后(如果不继续写入或发送响应)
res.end()调用了
?还是我遗漏了什么?

对于
res.write
,没有超时。但是,如果您查看,当头在第一次调用
response.write时被隐式设置,它们可能不是您想要的

在发送数据之前,即当您收到请求时,我会尝试显式设置这些标头:

response.setHeader('Connection', 'Transfer-Encoding');
response.setHeader('Content-Type', 'text/html; charset=utf-8');
response.setHeader('Transfer-Encoding', 'chunked');
我还想在
响应中添加一个简单的检查。编写
以确保每个区块都已刷新:

/*限制表示每个CSV长度*/
如果(docs.length==限制){
让chunk=JSON.stringify(docs);
if(res.write(`${chunk},`)){
文件=[];
}否则{
log(`oops!chunk${chunk}`有点问题);
}

}
响应。write
是node.js方法
response.setHeader('Connection', 'Transfer-Encoding');
response.setHeader('Content-Type', 'text/html; charset=utf-8');
response.setHeader('Transfer-Encoding', 'chunked');