File tree Expand file tree Collapse file tree 3 files changed +35
-1
lines changed Expand file tree Collapse file tree 3 files changed +35
-1
lines changed Original file line number Diff line number Diff line change @@ -1587,13 +1587,17 @@ added: v0.4.0
15871587
15881588*  ` name `  {string}
15891589*  ` value `  {any}
1590+ *  Returns: {http.ServerResponse}
1591+ 
1592+ Returns the response object.
15901593
15911594Sets a single header value for implicit headers. If this header already exists
15921595in the to-be-sent headers, its value will be replaced. Use an array of strings
15931596here to send multiple headers with the same name. Non-string values will be
15941597stored without modification. Therefore, [ ` response.getHeader() ` ] [ ]  may return
15951598non-string values. However, the non-string values will be converted to strings
1596- for network transmission.
1599+ for network transmission. The same response object is returned to the caller,
1600+ to enable call chaining.
15971601
15981602``` js 
15991603response .setHeader (' Content-Type'  , ' text/html'  );
Original file line number Diff line number Diff line change @@ -565,6 +565,7 @@ OutgoingMessage.prototype.setHeader = function setHeader(name, value) {
565565    this [ kOutHeaders ]  =  headers  =  ObjectCreate ( null ) ; 
566566
567567  headers [ name . toLowerCase ( ) ]  =  [ name ,  value ] ; 
568+   return  this ; 
568569} ; 
569570
570571
Original file line number Diff line number Diff line change 1+ 'use strict' ; 
2+ const  common  =  require ( '../common' ) ; 
3+ const  http  =  require ( 'http' ) ; 
4+ const  assert  =  require ( 'assert' ) ; 
5+ const  expected  =  { 
6+   '__proto__' : null , 
7+   'testheader1' : 'foo' , 
8+   'testheader2' : 'bar' , 
9+   'testheader3' : 'xyz' 
10+ } ; 
11+ const  server  =  http . createServer ( common . mustCall ( ( req ,  res )  =>  { 
12+   let  retval  =  res . setHeader ( 'testheader1' ,  'foo' ) ; 
13+ 
14+   // Test that the setHeader returns the same response object. 
15+   assert . strictEqual ( retval ,  res ) ; 
16+ 
17+   retval  =  res . setHeader ( 'testheader2' ,  'bar' ) . setHeader ( 'testheader3' ,  'xyz' ) ; 
18+   // Test that chaining works for setHeader. 
19+   assert . deepStrictEqual ( res . getHeaders ( ) ,  expected ) ; 
20+   res . end ( 'ok' ) ; 
21+ } ) ) ; 
22+ server . listen ( 0 ,  ( )  =>  { 
23+   http . get ( {  port : server . address ( ) . port  } ,  common . mustCall ( ( res )  =>  { 
24+     res . on ( 'data' ,  ( )  =>  { } ) ; 
25+     res . on ( 'end' ,  common . mustCall ( ( )  =>  { 
26+       server . close ( ) ; 
27+     } ) ) ; 
28+   } ) ) ; 
29+ } ) ; 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments