【发布时间】:2017-10-30 03:52:04
【问题描述】:
我希望能更好地理解 express 的 app.get() 和 app.use() 之间的区别。
我了解 app.use 适用于所有 HTTP 动词。
我也读过“app.use() adds middleware rather than a route”
我想了解为什么这个事实会导致这种行为......
我有一个 Express API 服务器,它需要代理一个 React 开发 Web 服务器。
这意味着所有不是 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 除外),因为没有记录。
那么有什么区别呢?
【问题讨论】:
标签: reactjs express http-proxy