Ich verwendete Express und ftp Pakete, um eine Anwendung zu erstellen, die Postanforderungen empfängt und eine Verbindung zu meinem FTP-Server herstellt. Wenn ein falscher Benutzer oder ein falsches Passwort eingegeben wurde, habe ich versucht, c.on('error', callback)
zu verwenden, um den Fehler zu erkennen und auf die Anmeldeseite umzuleiten.Kann Header nicht festlegen, nachdem sie gesendet werden Fehler bei der Verwendung von .on ('Fehler') in router.post()
signin.js
var router = require('express').Router();
var checkNotLogin = require('../middlewares/check').checkNotLogin;
var c = new require('ftp')();
router.get('/', checkNotLogin, function(req, res, next){
res.render('signin');
});
router.post('/', checkNotLogin, function(req, res, next){
var name = req.body.usrname;
var password = req.body.password;
var option = {
port: 21,
host: 'localhost',
user: name,
pass: password
};
c.on('ready', function(){
req.session.user = name;
req.session.pass = password
console.log('You are connected');
return res.redirect('/ftp/'+name);
});
c.on('error', function(err){
console.log(err.message);
return res.redirect('signin');
});
c.connect(option);
});
module.exports = router;
Das Problem ist, dass, wenn der falsche Benutzer oder Passwort beim ersten Mal auf die signin, die Umleitung eingegeben wird (selbst) Seite funktioniert. Wenn ich es jedoch erneut versuche, stürzte die App ab und es wurde gemeldet, dass "Header nach dem Senden nicht gesetzt werden können".
Vielen Dank im Voraus !!!!!
Wow, danke !!!! – XIAOAGE