我希望能更好地理解 expressapp.get()
和app.use()
.
我了解 app.use 适用于所有 HTTP 动词。
我还读过“app.use()
添加中间件而不是路由”
我想了解为什么这个事实会导致这种行为......
我有一个需要代理 React 开发 Web 服务器的快速 API 服务器。
这意味着所有不是 API 路由的路由都必须被代理。
当我代理这样的路由时,它可以工作:
var proxy = require('express-http-proxy');
module.exports = function set_react_catchall_routes(app) {
/* Final route to send anything else to react server. */
app.get('*', proxy('localhost:3000'));
app.post('*', proxy('localhost:3000'));
}
但是当我这样做时它不起作用:
app.use('*', proxy('localhost:3000'));
具体来说,“索引”页面被代理并提供,内容如下:
<body>
<div id="root"></div>
<script type="text/javascript" src="/static/js/bundle.js"></script>
</body>
并且客户端请求 javascript react 包,但随后“什么也没发生”。
我有理由确信当它工作时没有涉及“其他”HTTP 请求(GET 和 POST 除外),因为没有记录。
那么会有什么不同呢?