上传文件Node.js Express放置方法
我正在尝试使用XMLHttpRequest进行file upload,我正在分割文件,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(){}
我不使用男生,女生或者身体parsing者,一切都像魅力一样。
然后我改变chunk_size为100KB,客户端发送100KB,我检查了Content-Length。
但服务器正在接收31972字节,有时64061字节。
console.log:“缓冲区长度:31972”
不知道发生了什么,任何帮助将不胜感激。
作为_readableState
提示的下划线,这不是一个外部的API,不推荐使用。 以下是关于stream的文档摘录:
可写和可读stream都将缓冲内部对象上的数据,这些对象可分别从_writableState.getBuffer()或_readableState.buffer中检索。
…
stream的目的,特别是stream.pipe()方法的目的是将数据的缓冲限制在可接受的水平,以便不同速度的源和目的地不会压倒可用内存。
那么在这种情况下会发生什么呢,就是有些数据被放在stream的内部队列中,等待消耗。
可读stream应该与stream.read()
并且监听data
事件,或者,在这种情况下,使用pipe
方法应该是最简单的方法,如下所示:
req.pipe(fs.createWriteStream("some/path"));
请参阅createWriteStream
上的createWriteStream
。
- 从Express响应(渲染)发送道具给ReactJs
- 在process._tickCallback(node.js:419:13)处,NodeJs,500未能获得访问令牌(错误:连接ECONNREFUSED)
- app.use(express.static(path.join(__ dirname,'public'))); ReferenceError:path没有定义是什么问题?
- Rally:Node.js中的v2.0 API授权来处理POST请求
- 意见表示欢迎:为什么MEAN栈和Node.js?
- 快速发生器不工作
- 使用express-jwt作为中间件来validationAzure AD颁发的令牌
- 蓝鸟Promisies crud使用nodejs,express和mongoose的例子
- expressjs中的url没有给出正确的查询string