@Top_Pudge

Что в express называют midleware?

Постоянно во всех статьях и документациях связанных с Express.js встречаю слово middleware никак не могу понять, что оно означает и зачем нужно, хотя это незнание мне не мешает писать приложения на express. Переводится как"функции промежуточной обработки", складывается ощущение, что просто захотелось термин придумать и все . Называют им функции по типу app.use() app.get(). В документации это слово наверное употребляется чаще чем символ пробела. Встает еще один вопрос, что вообще не middleware ? Может быть лучше было называть этим словом express.
  • Вопрос задан
  • 539 просмотров
Решения вопроса 2
Ptolemy_master
@Ptolemy_master
Middleware - в переводе "промежуточный слой". По факту - это функция, через которую автоматически проходят запросы. Можно задать функции, через которые будут проходить все без исключения запросы, а можно назначить эти функции определенным запросам.
Я бы еще добавила, что этот слой (который определяется пользователем) не является обязательным, но его удобно использовать для выполнения какой-нибудь дополнительной логики. Например, нужно проверять все запросы на удовлетворение определенному условию и перенаправлять запрос на другой адрес в случае необходимости.
Ответ написан
Комментировать
yarkov
@yarkov
Помог ответ? Отметь решением.
app.get('/api/v1', function middleware (req, res, next) {
    // this function is middleware
    req.locals.middlewareObject = { name: 'middleware', called: true }
    next()
}, function otherMiddleware (req, res, next) {
    // this function is middleware too
    return res.json(req.locals.middlewareObject)
})
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Terafit
let a = 11

app.use('/', function middleware(req, res, next) { //в пеовом middleware делаем вычисления
  a = 11 + 4;
  next() //Идём дальше
}, function otherMiddleware (req, res, next) { //В этом middleware выводим значение
  if(req.url == '/') { // Проверяем существует ли url
    res.send(`Hello world ${a}`) // Отправляем значение, если есть
  } else {
    next() // Идём дальше. Например на функцию, которая отобразит 404
  }
})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы