Da express.multipart aus der Express 4.x-Bibliothek entfernt wird, wie wird der Datei-Upload in expressjs am besten gehandhabt?Multipart-/Formulardaten-Upload - Nodejs - expressjs
Antwort
beantwortet gerade eine similar question über multipart. Ich würde Multiparty empfehlen:
Haben Sie node-multiparty einen Versuch gegeben? Hier ist Beispiel für die Verwendung von der Readme:
var multiparty = require('multiparty')
, http = require('http')
, util = require('util')
http.createServer(function(req, res) {
if (req.url === '/upload' && req.method === 'POST') {
// parse a file upload
var form = new multiparty.Form();
form.parse(req, function(err, fields, files) {
res.writeHead(200, {'content-type': 'text/plain'});
res.write('received upload:\n\n');
res.end(util.inspect({fields: fields, files: files}));
});
return;
}
// show a file upload form
res.writeHead(200, {'content-type': 'text/html'});
res.end(
'<form action="/upload" enctype="multipart/form-data" method="post">'+
'<input type="text" name="title"><br>'+
'<input type="file" name="upload" multiple="multiple"><br>'+
'<input type="submit" value="Upload">'+
'</form>'
);
}).listen(8080);
Der Autor (Andrew Kelley) recommends vermeiden bodyParser, so haben Sie Recht, es zu vermeiden, aber Mehr scheint für mich ein ähnliches Problem zu lösen.
gibt es eine Möglichkeit, dies als Middleware zu verwenden? Ich möchte das nicht überall mit einschließen – nilveryboring
@nilveryboring Ich bin mir nicht sicher, was du meinst ... Du könntest das definitiv irgendwo hinstellen, das wiederverwendet werden könnte ... Ich weiß nicht, warum du das überall brauchen würdest .... – kentcdodds
Ok .. Ich habe das auch ausprobiert. Wie bekomme ich die Datei ohne den Antwort-Header zu setzen ?? Ich möchte einen anderen Prozess machen, wenn ok. Setze den Antwort-Header oder setze den Fehler zurück. res.end (util.inspect ({fields: fields, files: files})); ..Ich möchte nur die Datei gesendet aber den Header allein lassen ??? – philipfwilson
können Sie verwenden connect-multiparty
(https://github.com/andrewrk/connect-multiparty)
Es kann auf den Routen, die Sie Uploads akzeptieren wollen als Middleware verwendet werden.
- 1. Nodejs Clustering und expressjs Sitzungen
- 2. Nodejs oder ExpressJS Windows-Authentifizierung
- 3. Nodejs + expressjs wiederholt Anfrage nach Server-Timeout
- 4. [nodejs] Wie expressjs die abgelaufene Sitzung zerstören?
- 5. Nodejs + expressjs erhalten HTTP-Antwort als Puffer
- 6. Nodejs - Expressjs - Überprüfen Sie shopify Webhook
- 7. nodejs ExpressJS Routen funktioniert nur für Index
- 8. variabler Wert wird undefiniert in NodeJS ExpressJS
- 9. HTTP-Anforderung an Self in NodeJS/ExpressJS erstellen
- 10. NodeJS/ExpressJS senden Antwort von großen Datenmengen in 1 Stream
- 11. NodeJS/ExpressJS: Proxy einen HTTP-Videostream (von VLC)
- 12. NodeJs ExpressJs verwenden: TypeError: string ist keine Funktion bei Function.app.render
- 13. Wie behandelt man Routen, die # in nodejs mit expressjs haben?
- 14. Server-seitige Ereignisse können nicht mit nodejs und expressjs funktionieren
- 15. wie liest man eine pdf-Datei mit nodejs/expressjs
- 16. morgan deprecated expressjs
- 17. Möglicher Bindungsverlust in Expressjs?
- 18. .htaccess zu expressjs Routen
- 19. ExpressJs + Passport.js + MySQL Authentifizierung
- 20. Speichern ist keine Funktion in ExpressJS
- 21. Expressjs nicht statische Dateien erkennen
- 22. NodeJs & Express
- 23. Node.js expressjs Sitzungen stecken nicht in Firefox
- 24. URL nach POST mit ExpressJS ändern
- 25. Mehrere Layouts mit Lenker und ExpressJS?
- 26. Von ExpressJS-Apps zu ElectronJS-Apps wechseln
- 27. Interaktion zwischen Expressjs, socket.io und EventEmitter Listener
- 28. ExpressJS vs MeteorJS
- 29. ExpressJs mit Sequelize
- 30. ExpressJS statische Dateien
Alternativen sind in der Connect-Dokumentation aufgeführt: https://github.com/senchalabs/connect#middleware –
@ JonathanLonowski ja, aber diese Bibliotheken sieht nicht so sauber wie die alte, welche bevorzugen Sie? – nilveryboring
Technisch kamen viele von denen aus dem alten. connect-multiparty ist mehr oder weniger die, die du brauchst. –