Какова цель реализации промежуточного программного обеспечения Yeoman?

Я новичок в https://github.com/gruntjs/grunt-contrib-connect и наткнулся на это middleware реализация функции Yoeman -

middleware: function(connect, options, middlewares) {
    return [
        proxySnippet,
        connect.static('.tmp'),
        connect().use('/bower_components', connect.static('./bower_components')),
        connect.static(config.app)
    ];
}

Какова цель этой реализации?

1 ответ

Решение

Это связующее промежуточное ПО. Промежуточное программное обеспечение - это функция обратного вызова запроса, которая может выполняться при каждом запросе. Он может либо изменить / завершить текущий цикл запрос-ответ, либо передать запрос следующему промежуточному программному обеспечению в стеке. Вы можете узнать больше о промежуточном программном обеспечении из экспресс-гида.

В вашем коде у вас есть четыре промежуточных программного обеспечения в стеке. Первый - для передачи текущего запроса на другой сервер. А остальные три промежуточных программного обеспечения предназначены для обслуживания статических файлов из трех разных каталогов.

Когда на сервер делается запрос, он проходит через эти промежуточные программы в следующем порядке:

  1. Проверьте, должен ли запрос быть прокси. Если он проксируется на другом сервере, то это конец цикла запрос / ответ, остальные три промежуточных программного обеспечения будут игнорироваться.

  2. Если не прокси, он будет пытаться обслуживать запрошенный файл из ./tmp каталог.

  3. Если файл не найден выше, он заглянет внутрь ./bower_components, Обратите внимание, что это промежуточное программное обеспечение будет выполняться только для запросов с `/bower_components/ в пути. например, http://localhost:9000/bower_components/bootstrap/bootstrap.js
  4. Наконец, если файл не найден в двух каталогах выше, он будет искать его в любом месте, указанном в config.app,

Это конец стека, после этого вы получите ошибку 404 Not found.

Другие вопросы по тегам