Ich versuche, eine multer Middleware zu erstellen, um eine gestreamte Datei vom Client zu einem Drittanbieter über superagent zu leiten.Piping lesbaren Stream mit Superagenten
const superagent = require('superagent');
const multer = require('multer');
// my middleware
function streamstorage(){
function StreamStorage(){}
StreamStorage.prototype._handleFile = function(req, file, cb){
console.log(file.stream) // <-- is readable stream
const post = superagent.post('www.some-other-host.com');
file.stream.pipe(file.stream);
// need to call cb(null, {some: data}); but how
// do i get/handle the response from this post request?
}
return new StreamStorage()
}
const streamMiddleware = {
storage: streamstorage()
}
app.post('/someupload', streamMiddleware.single('rawimage'), function(req, res){
res.send('some token based on the superagent response')
});
Ich denke, das scheint zu funktionieren, aber ich bin nicht sicher, wie die Antwort von Superagenten POST
Anfrage bearbeiten, da ich ein Token von dem Superagenten Anforderung empfing zurückkommen müssen.
Ich habe post.end(fn...)
versucht, aber anscheinend end
und pipe
can't both be used together. Ich habe das Gefühl, dass ich falsch verstehe, wie Rohrleitungen funktionieren, oder ob das, was ich versuche, praktisch ist.
Das macht Sinn. Ich mache derzeit den ersten Vorschlag, also werde ich die zweite Lösung versuchen. –