-
[nodejs] @altg: aggiungere un header a tutte le responseHo scritto questa cosina stasera, magari ti serve:
var http = require('http'); var writeHead = http.ServerResponse.prototype.writeHead; http.ServerResponse.prototype.writeHead = function() { // response.writeHead(statusCode, [reasonPhrase], [headers]) var headers = arguments[1] && typeof arguments[1] === 'object' ? arguments[1] : arguments[2] && typeof arguments[2] === 'object' ? arguments[2] : null; if (headers) { headers['Server'] = 'proott'; writeHead.apply(this, arguments); } else { headers = {}; headers['Server'] = 'proott'; writeHead.apply(this, Array.prototype.slice.call(arguments).concat([headers])); } this.writeHeadWasCalled = true; } var end = http.ServerResponse.prototype.end; http.ServerResponse.prototype.end = function() { // response.end([data], [encoding]) if (!this.writeHeadWasCalled) { this.writeHead(200, {'Server' : 'proott'}); } end.apply(this, arguments); } var server = http.createServer(function(req, res) { if (req.url === '/writeHeadWithHeaders') { res.writeHead(200, {'Content-Type' : 'text/plain'}); } else if (req.url === '/writeHeadWithoutHeaders') { res.writeHead(200); } res.end('ok') }); server.listen(8080);
I test:$ echo -n 'GET / HTTP/1.0\r\n\r\n' | nc localhost 8080 HTTP/1.1 200 OK Server: proott Date: Sun, 10 Nov 2013 20:32:11 GMT Connection: close ok $ echo -n 'GET /writeHeadWithHeaders HTTP/1.0\r\n\r\n' | nc localhost 8080 HTTP/1.1 200 OK Content-Type: text/plain Server: proott Date: Sun, 10 Nov 2013 20:32:48 GMT Connection: close ok $ echo -n 'GET /writeHeadWithoutHeaders HTTP/1.0\r\n\r\n' | nc localhost 8080 HTTP/1.1 200 OK Server: proott Date: Sun, 10 Nov 2013 20:33:11 GMT Connection: close ok
Young professional woman and busy mom.-
Re: [nodejs] @altg: aggiungere un header a tutte le responseScritto daaltgutente che non utieneil 2013-11-10 22:08:51.0 alle 2013-11-10 22:08:51.0Trollate totali: 11540Be', io personalmente avevo passato tutte le responses da una stessa funzione, quindi se voglio aggiungere un header modifico quella, comunque mi appunto da dove si passa per accedere al livello inferiore (http.ServerResponse.prototype.writeHead).
Comunque, sai mica se nodejs e` in qualche modo legato a Google, dato l'uso del V8? Cioe`, intendo se Google in qualche modo puo` controllarlo, perche` come avrai notato, di recente avrebbe rotto le scatole a parecchia gente incluso me, Google.-
Re: [nodejs] @altg: aggiungere un header a tutte le responseScritto da: altg
> Be', io personalmente avevo passato tutte le responses da una stessa funzione, quindi se voglio aggiungere un header modifico quella, comunque mi appunto da dove si passa per accedere al livello inferiore (http.ServerResponse.prototype.writeHead).
>
> Comunque, sai mica se nodejs e` in qualche modo legato a Google, dato l'uso del V8? Cioe`, intendo se Google in qualche modo puo` controllarlo, perche` come avrai notato, di recente avrebbe rotto le scatole a parecchia gente incluso me, Google.
No, google controlla v8, ed eventuali sviluppi futuri (es: cambio di licenza) potrebbero vedere freezato il runtime javascript, ma non le aggiunte fatte da Ryan Dahl prima e Joyent poi al progetto: le librerie http, io e compagnia insomma sono fuori da v8.
Nel caso peggiore non avresti gli sviluppi che ci sono in corso per la sintassi EcmaScript 6 e tutte le belle ottimizzazioni che fa sul bytecode e sulle regex (irregexp), il tool di debug step-by-step integrato in chrome etc. etc. non avrebbero ulteriori progressi.
Ma già allo stato attuale è comunque un livello eccellente.
Chi ha investito invece molto denaro in node.js è microsoft, per la piattaforma Azure; sono loro che hanno spinto per migrare da libev a libuv per avere node.js su windows.Young professional woman and busy mom.-
Re: [nodejs] @altg: aggiungere un header a tutte le responseScritto daaltgutente che non utieneil 2013-11-10 22:32:50.0 alle 2013-11-10 22:32:50.0Trollate totali: 11540> > Be', io personalmente avevo passato tutte le responses da una stessa funzione, quindi se voglio aggiungere un header modifico quella, comunque mi appunto da dove si passa per accedere al livello inferiore (http.ServerResponse.prototype.writeHead).
> >
> > Comunque, sai mica se nodejs e` in qualche modo legato a Google, dato l'uso del V8? Cioe`, intendo se Google in qualche modo puo` controllarlo, perche` come avrai notato, di recente avrebbe rotto le scatole a parecchia gente incluso me, Google.
>
> No, google controlla v8, ed eventuali sviluppi futuri (es: cambio di licenza) potrebbero vedere freezato il runtime javascript, ma non le aggiunte fatte da Ryan Dahl prima e Joyent poi al progetto: le librerie http, io e compagnia insomma sono fuori da v8.
> Nel caso peggiore non avresti gli sviluppi che ci sono in corso per la sintassi EcmaScript 6 e tutte le belle ottimizzazioni che fa sul bytecode e sulle regex (irregexp), il tool di debug step-by-step integrato in chrome etc. etc. non avrebbero ulteriori progressi.
> Ma già allo stato attuale è comunque un livello eccellente.
> Chi ha investito invece molto denaro in node.js è microsoft, per la piattaforma Azure; sono loro che hanno spinto per migrare da libev a libuv per avere node.js su windows.
Meno male. Sarebbe stato condizionante nella mia volonta` di usare il nodo per sostituire il LAMP stack col mio serverino allinone. Comunque, spero ancora che Google faccia marcia indietro. Spero vedano cosa gli sta succedendo e non sottovalutino l'enormita` della mobilitazione. Con l'ultima mossa, secondo me, stanno regalando gli utenti di youtube a Vimeo.
-
Re: [nodejs] @altg: aggiungere un header a tutte le responseScritto da: altg
>
> Meno male. Sarebbe stato condizionante nella mia volonta` di usare il nodo per sostituire il LAMP stack col mio serverino allinone. Comunque, spero ancora che Google faccia marcia indietro. Spero vedano cosa gli sta succedendo e non sottovalutino l'enormita` della mobilitazione. Con l'ultima mossa, secondo me, stanno regalando gli utenti di youtube a Vimeo.
>
>
Speriamo che tutta questa gente non scopra liveleak
Young professional woman and busy mom.
-
-
-
-