Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Express 4.14 - How to send 200 status with a custom message?

How can I send status and message in express 4.14?

For: res.sendStatus(200);

I get OK on my browser but I want it to display a custom message such as: Success 1

res.sendStatus(200); res.send('Success 1'); 

Error:

Error: Can't set headers after they are sent.

If I do this:

res.status(200).send(1); 

Error:

express deprecated res.send(status): Use res.sendStatus(status) instead

Any ideas?

like image 751
Run Avatar asked Jul 02 '16 08:07

Run


People also ask

How do I send a status code in response Express?

To send the status code to the client-side, you can method chain using the . send() method. The status code 404 tells the client side that the data requested is not found.

How do I send a status in Res send?

The res. sendStatus() function is used to set the response HTTP status code to statusCode and send its string representation as the response body. Parameter: The statusCode parameter describes the HTTP status code. Returns: It returns an Object.


2 Answers

You can use:

res.status(200).send('some text'); 

if you want to pass number to the send method, convert it to string first to avoid deprecation error message.

the deprecation is for sending status directly inside send.

res.send(200) // <- is deprecated 

BTW - the default status is 200, so you can simply use res.send('Success 1'). Use .status() only for other status codes

like image 88
Dima Grossman Avatar answered Oct 03 '22 11:10

Dima Grossman


You shouldn't be getting that last error if you're using that exact code:

res.status(200).send('Success 1') 

My guess is that you're not using the string "Success 1" but a numerical variable or value instead:

let value = 123; res.status(200).send(value); 

That would trigger the warning. Instead, make sure that value is stringified:

let value = 123; res.status(200).send(String(value));   
like image 22
robertklep Avatar answered Oct 03 '22 11:10

robertklep