2015-10-21 4 views
1

Я новичок в grunt-contrib-connect и столкнулось с этой последующей middleware функции реализации Yoeman -Какова цель реализации функции промежуточного программного обеспечения Yeoman?

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

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

ответ

1

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

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

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

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

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

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

Это конец стека, после чего вы получите ошибку 404 Не найдена.