2012-04-06 5 views
0

Ich benutze node-formidable, um multipart/formdata hochzuladen. Alles funktioniert gut, solange ichWie verwendet man node-formidable mit express.bodyParser() und response.write()

Kommentar die Zeile:

//app.use(express.bodyParser()); 

Aber das Problem ist, dass ich einen Fortschrittsbalken auf der Client-Seite implementieren möchten. Dafür versuche ich, so etwas zu tun:

form.on('progress',function(a,b){ 
response.write() //Gives error saying Can't set headers after they have been sent 
}) 

, wenn ich die ausdrückliche bodyParser() res.write() verwenden, funktioniert perfekt.

PS: Ich weiß, dass dies mit socket.io getan werden kann, aber ich denke nicht, dass das eine elegante Lösung ist.

Gibt es eine Möglichkeit, response.write() zu verwenden und gleichzeitig formidable zu verwenden?

Vielen Dank.

+0

response.write ist auch nicht eine sehr saubere Lösung. Wer kennt sonst noch den Weg, um über socket.io die Fortschrittsbalken zu senden? – Deepak

+0

Warum ist Socket.io keine sehr saubere Lösung für Sie? Es macht genau das, was Sie wollen und es ist sehr einfach zu implementieren. –

Antwort

0

mit Body-Parser sollten Sie in der Lage sein, das Ereignis 'data' an das req-Objekt zu binden und dann mit res.write() in das res-Objekt zu schreiben.

+0

Das Problem besteht darin, dass der Browser (oder node.js) keine req- oder res-Ereignisse abwartet, solange der Datei-Upload aktiviert ist. Sobald der Datei-Upload beendet ist, wird alles ausgeführt. – Deepak

+0

Das Datenereignis wird während des Dateiuploads mehrfach ausgelöst. – Amit

Verwandte Themen