中间件Yeoman功能实现的目的是什么?

时间:2015-10-21 11:14:43

标签: node.js gruntjs grunt-contrib-connect yo

我是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 个答案:

答案 0 :(得分:1)

这些是connect middlewares。中间件是可以在每个请求上执行的请求回调函数。它可以修改/结束curent请求 - 响应周期,也可以将请求传递给堆栈中的下一个中间件。您可以从express guide了解有关中间件的更多信息。

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

当向服务器发出请求时,它将按以下顺序浏览这些中间件:

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

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

  3. 如果上面没有找到该文件,它会查看./bower_components内部。请注意,此中间件仅针对路径中具有`/ bower_components /的请求执行。例如http://localhost:9000/bower_components/bootstrap/bootstrap.js
  4. 最后,如果在上述两个目录中找不到文件,它将在config.app中设置的路径中查找它。
  5. 那是堆栈的结束,之后您将收到404 Not found错误。