Jesteś w połowie drogi. Mogę serdecznie zgodzić się z tym, że dokumentacja nie jest do końca wystarczająca, aby to zrobić;
var zlib = require('zlib');
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html', 'Content-Encoding': 'gzip'});
var text = "Hello World!";
var buf = new Buffer(text, 'utf-8'); // Choose encoding for the string.
zlib.gzip(buf, function (_, result) { // The callback will give you the
res.end(result); // result, so just send it.
});
}).listen(80);
uproszczenie nie byłoby użyć Buffer
;
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html', 'Content-Encoding': 'gzip'});
var text = "Hello World!";
zlib.gzip(text, function (_, result) { // The callback will give you the
res.end(result); // result, so just send it.
});
}).listen(80);
... i domyślnie przesyła kodowanie UTF-8. Jednak ja osobiście wolę chodzić po bezpiecznej stronie, gdy nie ma domyślnego zachowania, które ma więcej sensu niż inne i nie mogę natychmiast potwierdzić go dokumentacją.
Podobnie w przypadku trzeba przekazać obiekt JSON zamiast:
var data = {'hello':'swateek!'}
res.writeHead(200, {'Content-Type': 'application/json', 'Content-Encoding': 'gzip'});
var buf = new Buffer(JSON.stringify(data), 'utf-8');
zlib.gzip(buf, function (_, result) {
res.end(result);
});
Co oznacza wartość '_' reprezentować w zwrotnego? Myślę, że może to błąd, ale nie mogę go znaleźć ... – cprcrack
@ cprcrack To po prostu nieużywany parametr do wywołania zwrotnego. "_" jest poprawne jako nazwa zmiennej/parametru i używam go jako znacznika, który sprawia, że jest on dla mnie oczywisty, że nie jest używany. –
Wpadłem na pomysł, ale nadal chciałbym wiedzieć, dlaczego wywołujący wywołanie używa tego parametru i czy czasem może być użyty/użyteczny. – cprcrack