in node.js, if using createReadStream() do you still need response.end()

node.js doc says

response.end([data], [encoding])

This method signals to the server that all of the response headers and body have been sent; that server should consider this message complete. The method, response.end(), MUST be called on each response.

but in the many examples given using using createReadStream, eg,

 fs.createReadStream(filename,{...}).pipe(response)
I never see response.end() called.

it resonse.end() needed with createReadStream()? and, if so, where does it appear in the program flow - you don't want it called until the pipe is finished, right?

You do response.end() after reading is finished (end event) or you encounter an error (error event).

Check this example: http://elegantcode.com/2011/04/06/taking-baby-steps-with-node-js-pumping-data-between-streams/