Search code examples
node.jsexpressnpmresponsesend

What is the difference between res.send and res.write in express?


I am a beginner to express.js and I am trying to understand the difference between res.send & res.write ?


Solution

  • res.send

    • res.send is only in Express.js.
    • Performs many useful tasks for simple non-streaming responses.
    • Ability to automatically assigns the Content-Length HTTP response header field.
    • Ability to provides automatic HEAD & HTTP cache freshness support.
    • Practical explanation
      • res.send can only be called once, since it is equivalent to res.write + res.end()
      • Example:
        app.get('/user/:id', function (req, res) {
            res.send('OK');
        });
        

    For more details:


    res.write

    • Can be called multiple times to provide successive parts of the body.
    • Example:
      response.write('<html>');
      response.write('<body>');
      response.write('<h1>Hello, World!</h1>');
      response.write('</body>');
      response.write('</html>');
      response.end();
      

    For more details: