Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do i test if the response was already set/send?

I have the case that a express controller action "may" send contents.

"Send" means either content was send (http 200) or the http status was set to something (http status 204 or a redirect for example)

If nothing was sent/set a default routine should send a default content.

how can i test in my default routine if the express controller action already set contents or set the status code ?

like image 339
lgersman Avatar asked Mar 08 '13 07:03

lgersman


1 Answers

response.headersSent should work.

For example:

if (response.headersSent) {
    console.log('Headers sent!')
} else {
    console.log('Headers have not been sent.')
}
res.writeHead(200);
if (response.headersSent) {
    console.log('Headers sent!')
} else {
    console.log('Headers have not been sent.')
}

Connecting with a client should log:

Headers have not been sent.
Headers sent!
like image 58
Bennett Avatar answered Oct 02 '22 22:10

Bennett