Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Issue with loading chunks into the client

I’m trying to create a readableStream through which I would send chunks of data ( html in this case ). The problem is that even if I manage to get a chunk of data the res.write() method does nothing and just returns false if I log it.
I wonder why is that?

import { createServer } from 'http'
import { createReadStream } from 'fs'

const server = createServer((req, res) => {
    if (req.method === 'GET') {
        if (req.url === '/') {
            res.writeHead(200, { 'Content-Type': 'text/html' })

            let readStream = createReadStream('./src/public/index.html', { encoding: 'utf8' })

            readStream.on('data', (chunk) => {
                console.log(chunk)
                // html code
                res.write(chunk)
                // does nothing
            })
            res.end()
        }
    }
})

const PORT = 3000 || 8080

server.listen(PORT, () => { console.log(server.address()) })

>Solution :

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

you should add a pipe function not a regular write to the response

  readStream.on('open', function () {
    // This just pipes the read stream to the response object (which goes to the client)
    readStream.pipe(res);
  });

  // This catches any errors that happen while creating the readable stream (usually invalid names)
  readStream.on('error', function(err) {
    res.status(500).end(err);
  });

for more information: https://nodejs.org/en/knowledge/advanced/streams/how-to-use-fs-create-read-stream/

I hope it help you 🙂

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading