node.js - Node js stream is pending -


i have following node route:

router.route('/resource/:encodedstring/:mediatype') .all(function (req, res) {     var decoded = jwt.decode(req.params.encodedstring, require('../secret')());     var mediaobject = decoded.mediaobject;      res.header('content-disposition', 'filename="' + mediaobject.filename + req.params.mediatype + '"');     var stream = fs.createreadstream(mediaobject.targetdir + mediaobject.filename + req.params.mediatype);     res.pipe(stream); }) 

which called client.

however not give me result want because once called response pending.

    accept-encoding:identity;q=1, *;q=0 range:bytes=0- referer:http://localhost/myproject/ user-agent:mozilla/5.0 (x11; linux x86_64) applewebkit/537.36 (khtml, gecko) chrome/41.0.2272.76 safari/537.36 

resulting in content not displaying.

so question doing wrong?

you're not ending response, that's why it's pending. suggestion call res.end() on end event of readable stream, like:

var stream = fs.createreadstream(mediaobject.targetdir + mediaobject.filename + req.params.mediatype); res.pipe(stream);  stream.on('end', function () {   console.log("reading operation completed.");   res.end(); });; 

Comments