为什么koa this.req.socket on('data',...只调用一次?

时间:2016-09-30 02:51:36

标签: node.js koa

上传图片时:

  

curl -v --data-binary“@ $ HOME / Pictures / blue_red_pill.jpg”http://localhost:3234/image

On data事件仅​​在上传部分时调用一次。 curl命令只会挂起,直到超时。这是服务器代码:

const router = require('koa-router')()

router.post('/image', function *() {
    yield new Promise(resolve => {
        const socket = this.req.socket
        let dataBuffer = new Buffer('', 'binary')
        socket.on('data', data => {
            console.log(data.length, data.toString('hex').substring(0, 14))
            dataBuffer = Buffer.concat([dataBuffer, data])
        })
        socket.on('end', () => {
            console.log('end')
            resolve()
        })
    })
})

字节只是文件的一部分,但十六进制对于文件的开头是正确的:

49152 'ffd8ffe000104a'

0 个答案:

没有答案