【问题标题】:What is the purpose on the middleware Yeoman function implementation?中间件 Yeoman 功能实现的目的是什么?
【发布时间】:2015-10-21 11:14:42
【问题描述】:

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

这个实现的目的是什么?

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    3. 如果在上面找不到该文件,它将在./bower_components 中查找。请注意,此中间件将仅针对路径中包含 `/bower_components/ 的请求执行。例如http://localhost:9000/bower_components/bootstrap/bootstrap.js
    4. 最后,如果在以上两个目录中都没有找到文件,它会在config.app中设置的任何路径中寻找它。

    这是堆栈的末尾,之后您将收到 404 Not found 错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-12
      • 2010-09-25
      • 1970-01-01
      • 2018-10-16
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多