Soweit ich das beurteilen kann konfiguriere ich meine globale Middleware-Funktion wie in den Dokumenten und in jedem Forum Beitrag zu dem Thema beschrieben, aber es wird nicht aufgerufen. Sieht jemand was ich falsch mache? ausdrückliche 3.2.5. In der Protokollausgabe sehe ich folgendes:express global middleware nicht aufgerufen
Express server listening on port 9000
inside route
GET/200 7ms - 2b
Ich erwarte, dass „innerhalb Middleware“, um zu sehen, dann „innerhalb route“. Stattdessen sehe ich nur "Inside Route".
Der Code:
var express = require('express'), http=require('http'), path=require('path');
var app = express();
app.enable('trust proxy');
app.set('port', process.env.PORT || 9000);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.set('layout', 'layout');
app.use(require('express-ejs-layouts'));
app.use(express.favicon(__dirname + '/public/images/favicon.ico'));
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride())
app.use(express.cookieParser('kfiwknks'));
app.use(express.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
if ('development' == app.get('env')) {
app.use(express.errorHandler());
} else {
app.use(function(err, req, res, next){
console.error (error);
res.send (500, "Internal server error");
});
}
app.use (function (req, res, next) {
console.log ("inside middleware");
next();
});
app.get ("/", function (req, res) {
console.log ("inside route");
res.send(200);
});
http.createServer(app).listen(app.get('port'), function() {
console.log('Express server listening on port ' + app.get('port'));
});
Dieses Ergebniss zu:
Express 3 error middleware not being called
ist spezifisch Umgang mit Middleware auf Fehler. Meine ist eine Vanille Middleware.
Sie müssen '' ( –
) benötigen ("Pfad"). Danke - Pfad ist im Arbeitsbeispiel erforderlich. Ich habe die Require-Anweisungen per Hand in den Post eingefügt (und den Pfad gerade erst zum Post hinzugefügt). Wenn Pfad nicht benötigt würde, würde der Code einfach explodieren. – Jake
Setzen Sie diese Middleware, bevor Sie app.router verwenden – user568109