[英]Uploading files Node.js Express put method
我正在嘗試使用XMLHttpRequest上傳文件,我正在拆分文件,chunk_size為10KB。 在服務器上我正在使用
app.route('/upload/').put(function(req, res, next) {
var buff =req._readableState.buffer[0];
console.log('Buffer length: ' + buff.length);
}
console.log:“緩沖區長度:10240”
我正在寫文件:
fs.write(fd,buff,0,buff.length,pos,function(){}
我沒有使用男生,雜技演員或人體分析器,並且一切都像一個魅力。
然后我將chunk_size更改為100KB,並且客戶端正在發送100KB,我檢查了Content-Length。
但是服務器正在接收31972字節,有時是64061字節。
console.log:“緩沖區長度:31972”
不知道發生了什么,任何幫助將不勝感激。
作為_readableState
提示的主要下划線,它不是外部API,因此不建議使用。 這是關於流的文檔的摘錄:
可寫流和可讀取流都將在內部對象上緩沖數據,這些數據可以分別從_writableState.getBuffer()或_visibleState.buffer檢索。
...
流的目的(尤其是使用stream.pipe()方法)是為了將數據的緩沖限制在可接受的水平,以使速度變化的源和目標不會淹沒可用的內存。
因此,在這種情況下,實際情況是某些數據被放入流的內部隊列中,等待使用。
可讀流應該通過stream.read()
並監聽data
事件來使用,或者在這種情況下應該是最簡單的方法,通過pipe
方法來使用,如下所示:
req.pipe(fs.createWriteStream("some/path"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.