什么是中间件Yeomanfunction实现的目的?

我是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) ]; } 

这个实现的目的是什么?

这些是连接中间件 。 中间件是可以在每个请求上执行的请求callback函数。 它可以修改/结束请求响应循环,也可以将请求传递给堆栈中的下一个中间件。 您可以从快速指南了解更多关于中间件的信息。

在你的代码中你有四个中间件在堆栈中。 第一个是代理当前的请求到另一台服务器。 其余三个中间件用于从三个不同的目录提供静态文件。

当向服务器发出请求时,将按照以下顺序通过这些中间件:

  1. 检查请求是否应该被代理。 如果它被代理到其他服务器,那么这是请求/响应周期的结束,剩下的三个中间件将被忽略。

  2. 如果没有代理,它将尝试从./tmp目录提供请求的文件。

  3. 如果文件没有在上面find,它会在里面./bower_components 。 请注意,只有在path中具有`/ bower_components /'的请求才会执行该中间件。 例如http:// localhost:9000 / bower_components / bootstrap / bootstrap.js
  4. 最后,如果在上面两个目录中找不到文件,它将在config.app设置的path中查找它。

这是堆栈的结束,之后,你会得到一个404找不到错误。