中间件 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。
在您的代码中,堆栈中有四个中间件。第一个用于将当前请求代理到另一台服务器。其余三个中间件用于提供来自三个不同目录的静态文件。
当向服务器发出请求时,它将按以下顺序通过这些中间件:
检查请求是否应该被代理。如果代理到其他服务器,则request/response循环结束,其余三个中间件将被忽略。
如果没有代理,它将尝试从 ./tmp
目录提供请求的文件。
- 如果在上面找不到文件,它将在
./bower_components
中查找。请注意,此中间件将仅针对路径中包含 `/bower_components/ 的请求执行。例如http://localhost:9000/bower_components/bootstrap/bootstrap.js
- 最后,如果在上述两个目录中找不到文件,它将在
config.app
中设置的任何路径中查找它。
这是堆栈的末尾,之后您将收到 404 Not found 错误。
我是 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。
在您的代码中,堆栈中有四个中间件。第一个用于将当前请求代理到另一台服务器。其余三个中间件用于提供来自三个不同目录的静态文件。
当向服务器发出请求时,它将按以下顺序通过这些中间件:
检查请求是否应该被代理。如果代理到其他服务器,则request/response循环结束,其余三个中间件将被忽略。
如果没有代理,它将尝试从
./tmp
目录提供请求的文件。- 如果在上面找不到文件,它将在
./bower_components
中查找。请注意,此中间件将仅针对路径中包含 `/bower_components/ 的请求执行。例如http://localhost:9000/bower_components/bootstrap/bootstrap.js - 最后,如果在上述两个目录中找不到文件,它将在
config.app
中设置的任何路径中查找它。
这是堆栈的末尾,之后您将收到 404 Not found 错误。