Ich möchte einen Node/Express-Server verwenden, um eine Datei als Anhang zum Client zu streamen. Ich möchte eine asynchrone Anfrage vom Client an einen /download
Endpunkt machen und dann ein Objekt, das über den API-Proxy empfangen wurde, als herunterladbare Datei an den Client senden (ähnlich wie sich res.attachment(filename); res.send(body);
verhält).Verwenden von Node/Express, um Datei zum Benutzer zum Download zu streamen
Zum Beispiel:
fetch(new Request('/download'))
.then(() => console.log('download complete'))
app.get('/download', (req, res, next) => {
// Request to external API
request(config, (error, response, body) => {
const jsonToSend = JSON.parse(body);
res.download(jsonToSend, 'filename.json');
})
});
Das wird nicht funktionieren, weil res.download()
nur einen Pfad zu einer Datei akzeptiert. Ich möchte die Antwort von einem Objekt im Speicher senden. Wie ist das mit bestehenden Node/Express APIs möglich?
Einstellen der entsprechenden Header nicht als Download angeboten werden, entweder:
res.setHeader('Content-disposition', 'attachment; filename=filename.json');
res.setHeader('Content-type', 'application/json');
res.send({some: 'json'});
Siehe mein Update oben. – Himmel
Ich sah es, Sie stellen die gleiche Frage wie in der ersten Verbindung, die ich zur Verfügung stellte – user3
Dieser Link liefert mir nicht genug Informationen, um das Problem zu beheben, das ich habe. – Himmel