中间件 Yeoman 函数实现的目的是什么?

What is the purpose on the middleware Yeoman function implementation?

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

这个实现的目的是什么?

这些是connect middlewares. A middleware is a request callback function which may be executed on each request. It can either modify/end the curent request-response cycle or pass the request to the next middleware in the stack. You can learn more about middlewares from express guide

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

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

  1. 检查请求是否应该被代理。如果代理到其他服务器,则request/response循环结束,其余三个中间件将被忽略。

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

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

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