Derzeit entwickle ich eine Express-App mit Middlewares. Erster Schritt, ich muss die Benutzer authentifizieren. In app.js
Ich habe:Antwort kann nicht gesendet werden, nachdem Header gesendet wurden
app.post('/api/ecosystem/project/auth',
middleware.authenticate,
function(req,res){
}
);
In der Middleware, muss ich den params durch den Anwender zugreifen, so dass ich den Zugriff auf body
, das Setzen von Headern. In middleware/index.js
:
function authenticate(req, res, next){
var plainPassword = req.body.password,
userName = req.body.username;
models.connection.query(
`SELECT * FROM TABLE_1 WHERE username = ?`,
[userName] ,function(err, query) {
var err = true; //for testing purposes
if (err) res.statusCode = 500;
console.log('continues');
//...
Das Problem kommt, wenn ich versuche, den Statuscode zu senden Zurück mehr. Da Header gesetzt sind, kann ich res.send(), res.status(), next() mit einem Fehlerparameter und so weiter nicht verwenden. Wenn ich das tue, habe ich einen Fehler über Headers have already been sent
. Es gibt eine very amazing answer here about this.
So kann ich nur res.statusCode
verwenden, aber dies gibt den Status nicht zurück und stoppt nicht den Fluss. Außerdem kann ich keine anderen Parameter als err.message
in einer JSON-Datei senden.
Irgendwelche Ideen, wie man das löst?
Danke !!