2016-04-12 15 views
0

Ich möchte einen Puffer über HTTP-Antwort senden, aber auf dem Client erhalte ich es als Zeichenfolge anstelle von Puffer. Ich benutze Express.js Router, wie im folgenden CodeNodejs + expressjs erhalten HTTP-Antwort als Puffer

router.get('/', function(req, res, next) { 
    const buf = new Buffer('Hello world'); 
    console.log(buf); // gives me <Buffer 48 65 6c 6c 6f 20 77 6f 72 6c 64> 
    res.send(buf); // gives me 'Hello world' 
}); 

In dem obigen Code meines erwartetes Ergebnis war Buffer(), aber ich den String-Ausgang ‚Hallo Welt bekommen.

Jemand hilf mir aus. Danke im Voraus.

+1

Der Client weiß nichts über NodeJS 'buffer', so dass er nicht verwendet werden kann. – alexmac

+0

Was _exactly_ haben Sie erwartet? Die hexadezimale Darstellung des Pufferinhalts? – robertklep

+0

Pufferinhalt etwa so

Antwort

1

Wie in Express doc erwähnt, http://expressjs.com/en/api.html

Wenn der Parameter ein Buffer-Objekt ist, setzt die Methode das Content-Type Antwort-Header-Feld auf „application/octet-stream“

Abhängig von Ihrem Browser können einige die Antwort als Datei herunterladen (z. B. Chrome), andere können den Stream lesen und den Inhalt direkt anzeigen (z. B. IE11).

Verwandte Themen