Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Express.js close response

Tags:

Is there a way to close a response? I can use res.end() but it doesn't actually close the socket.

What I want to achieve: I am writing a Java program which interfaces with the network, and I am writing a NodeJS server for this. Java code:

String line; while((line = in.readLine()) != null) {     System.out.println("RES: "+line); } 

But this just keeps hanging. No end connection, still waiting for input from the socket.

Node:

exports.getAll = function (req, res) {     res.set("Content-Type", "text/plain");     res.set(200);     res.send(..data..);     res.end(); } 

however res.end() does not close the connection. As said before, Java keeps thinking there will be something next so it is stuck in the while loop.

like image 225
Matej Avatar asked Nov 25 '12 18:11

Matej


People also ask

How do you end a response in node JS?

end() method ends the current response process. This method is used to quickly end the response without any data.

Does Res end () End the function?

res. end() is used to quickly end the response without sending any data.

How do I close an Express server?

To properly close Node Express server, we can call the close method. to call server. close with a callback that has the error err parameter. If err is set, then there's an error when closing the Express server and we call process.

Does Res end return?

res. send and end are express functions to return data for the client.


1 Answers

Solved by setting a HTTP header to close the connection instead of default keep-alive strategy.

res.set("Connection", "close"); 
like image 182
Matej Avatar answered Oct 14 '22 00:10

Matej