Ich bin Neuling in Express und ein wenig verwirrt darüber, wie es behandelt Middlewares? Also im Grunde habe ich zwei Middle, die wie folgt aussieht:Wie Express Middlewares aufnimmt?
app.use(require('_/app/middlewares/errors/404'))
app.use(require('_/app/middlewares/errors/500'))
var log = require('_/log')
module.exports = function (req, res, next) {
log.warn('page not found', req.url)
res.status(404).render('errors/404')
}
var log = require('_/log')
module.exports = function (er, req, res, next) {
log.error(er.message)
res.locals.error = er
res.status(500).render('errors/500')
}
So, jetzt ich meine benutzerdefinierte Middleware app.use(require('_/app/middleware/shareLocals'))
hinzufügen möchten, die wie folgt aussieht :
module.exports = function (req, res, next) {
res.locals.base_url = req.protocol + '://' + req.get('host');
next();
}
Das Hauptproblem ist, dass jetzt, wenn ich versuche base_url
zu verwenden ich 404
Fehler bekommen ...
Wie Express
versteht, was Middleware tun? Das ist zwischen meiner Middleware und 404 sind keine visuellen Unterschiede:
- erhält es gleiche params
- es keine
if's
darin hat, wirft nur 404 Fehler
Erscheint das Gefühl das die Middle in Express
sind für Fehler gemacht (wenn Ausnahmen Fehler als erster Parameter) und für 404 (wenn es keinen ersten Fehler gibt) ...
PS Gibt es einen Unterschied zwischen Middlewares vor oder nach den Routen?