Посмотрите на этих маршрутах:Запуск и тот же код в начале многих Express.js маршрутов
app.get('/', function (req, res) {
var legacy = false;
//LENGTHY CODE that sets legacy to true for old browsers
if (legacy === false) {
res.render('home');
} else {
res.render('legacy');
}
});
app.get('/other', function (req, res) {
var legacy = false;
//LENGTHY CODE that sets legacy to true for old browsers
if (legacy === false) {
res.render('other');
} else {
res.render('legacy');
}
});
//Many other routes like this with the legacy check.
Вопрос в том, как я избегаю повторять длинный код в каждом маршруте? Включение его в функцию на самом деле не является решением, потому что это задает вопрос, как мне избежать вызова этой функции в каждом маршруте?
Есть ли хороший выход из этого?
Возможно, это так называемое промежуточное ПО?
Идея должна быть оценена.
Зависит, для всех маршрутов вы можете использовать 'app.all', если только для некоторых маршрутов вы можете определить маршрут, который соответствует регулярному выражению или переменной (' app.get ('/: id') ') и проверять переменную на набор правил и т. д. – adeneo