Javascript 上传文件Node.js Express put方法

Javascript 上传文件Node.js Express put方法,javascript,node.js,express,file-upload,Javascript,Node.js,Express,File Upload,我正在尝试使用XMLHttpRequest进行文件上传,我正在分割文件,块大小为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.wr

我正在尝试使用XMLHttpRequest进行文件上传,我正在分割文件,块大小为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_大小更改为100KB,客户端发送100KB,我检查了内容长度

但服务器正在接收31972字节,有时是64061字节

console.log:“缓冲区长度:31972”


不知道发生了什么,我们将不胜感激。

作为
\u readableState
提示的主要下划线,这不是外部API,不建议使用。以下是一段摘录:

可写流和可读流都将缓冲内部对象上的数据,该对象可以分别从_writeablestate.getBuffer()或_readableState.buffer检索

streams的目的,特别是使用stream.pipe()方法,是将数据缓冲限制在可接受的级别,以便不同速度的源和目标不会占用可用内存

因此,在这种情况下,一些数据被放入流的内部队列中,等待消耗

可读流应该使用
stream.read()
并侦听
数据
事件,或者使用
管道
方法(在这种情况下,这应该是最简单的方法),如下所示:

req.pipe(fs.createWriteStream("some/path"));

请参阅。

以这种方式拆分文件并不总是切实有效的

您可以尝试名为files io的节点包。

希望这台服务器是你的目的