Ich bin Neuling zu expressjs, Hier ist meine App js: Wenn ich die Res.Send ie Aman in der nächsten Middleware entfernen wird das Bild heruntergeladen aber wenn ich das einschließe, wird das Bild nicht heruntergeladen. Ich bin verwirrt, ich meine Middleware führt eins nach dem anderen aus, eines wird dann ausgeführt, das nächste() wird evozieren und dann das nächste, aber hier ist es nicht so, warum ist es so? Kann jemand diese res.sendFile()
Warum Bild nicht rendert, wenn ich eine res.send in nächste Middleware-Funktion einschließe
var express = require('express');
var app = express();
app.get('/', function(req, res) {
res.send("Default");
});
var Aperson = function(req, res, next) {
console.log("File is downloaing");
res.download(__dirname + '/instagram_5.jpg');
next();
}
app.get("/download", [Aperson], function(req, res) {
res.send("AMan");
});
app.use(function(req, res) {
res.status(404).send("Sorry cant find that");
});
app.listen(4000, function() {
console.log("App started on port 4000");
});
bas whi toh baat hai. Wenn ich diese res.download() - Funktion ausführe ist es egal, ob ich eine nächste Funktion geschrieben habe oder nicht, sie sollte in derselben Zeile enden. Aber warum geht es immer noch zum nächsten Controller, wenn ich diesen "res.send (" AMan ") schreibe;" Wenn diese Zeile entfernt wird, wird das Bild tatsächlich ohne Probleme heruntergeladen. @ajit jain –
es wird gehen, weil 'next()' Anweisung ausgeführt und Ihr Code in der nächsten Funktion eintritt, während res.download() noch in der Warteschlange warten, um es auszuführen Callback nach der Ausführung 'res.send()' Ereignisschleife wird Callback verarbeiten von 'res.download', das res.send erzeugt' AMan' auf dem Bildschirm und schließen Antwort-Stream .. Sie sollten folgende Zeilen in Ihrem Code hinzufügen und dann beobachten Verhalten in der Konsole: verwenden Sie diese –
'res.Download (__Dirname + '/ instagram_5.jpg‘, (err) => { console.log ("Async-Funktion"); });' statt 'res.download (__ dirname + '/instagram_5.jpg')' 2. Verwendung 'console.log (" Alles ")' in 'app.get ("/download ", [Person], Funktion (req, res)) { res. sende ("AMan"); }); vor 'res.send()' @Eddysapata –