Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Must res.end() be called in express with node.js?

I have several Express applications, and I see that in some modules, res.end() is called at the end of a request handler (after res.send or res.json), while in others, it isn't called.

For example:

app.get('/test', function(req, res) {     res.send('Test', 200); }); 

or:

app.get('/test', function(req, res) {     res.send('Test', 200);     res.end(); }); 

Both cases work, but I'm afraid about leaks or running out file descriptors or something like that, when I run many requests. Which one is "more correct"?

like image 894
greuze Avatar asked Dec 03 '13 15:12

greuze


1 Answers

The answer to your question is no. You don't have to call res.end() if you call res.send(). res.send() calls res.end() for you.

Taken from /lib/response.js, here is the end of the res.send() function:

  //. . .   // respond   this.end(head ? null : body);   return this; } 
like image 52
Jay Avatar answered Sep 27 '22 15:09

Jay