怎么用pipe来改造getPostData?

来源:8-5 stream演示(2)

慕粉6137024

2022-04-11

这个req.on(‘data’)本身就是一边传一边拼接吧?那如果要使用pipe的话,要在哪个地方createReadStream呢?
能不能用stream和pipe来改写一下以前getPostData的逻辑???

//以前的代码
const getPostData = req => {
  const promise = new Promise((resolve, rej) => {
        if (req.method !== 'POST') {
            resolve({})
            return
        }
        if (req.headers['content-type'] !== 'application/json') {
            resolve({})
            return
        }

        let postData = ''
        let chunks = []
        let size = 0
        req.on('data', d => {
            chunks.push(d)
            size += d.length
        })
        req.on('end', () => {
            let buf = Buffer.concat(chunks, size)
            postData = buf.toString()
            if (!!postData) {
                resolve(JSON.parse(postData))
                return
            }
            resolve({})

        })
    })
    return promise
}
写回答

1回答

双越

2022-04-12

不好改。pipe 是个流动的过程,而 getPostData 是要获取最终的结果,两者目的不一样。

0
1
慕粉6137024
嗯估计框架开发就不会那么麻烦了
2022-04-13
共1条回复

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4132 学习 · 2024 问题

查看课程