javascript - ReactJS 路由器正在覆盖 ExpressJS 路由器

标签 javascript node.js reactjs express react-router

我遇到了一个很有趣的问题。我的 React JS 根文件有多个路由器:

render() {
    return (
        <div className="container body">
                <Route exact path="/" component={<IndexPage/>} />
                <Route exact path="/users" component={<Users/>} />
                <Route exact path="/users/:userId" component={<User/> }/>
                <Route exact path="/routers" component={<Routers/>} />
        </div> 
    );
}

我根据路由生成组件。然后我通过 webpack 将我的 react 组件构建为单个 javascript 文件。

现在我正尝试通过 ExpressJS 显示 React 页面,如下所示:

const express = require('express');
const app = express();

// This is location where generated Webpack files are located
app.use(express.static(__dirname + '/../build'));

app.get('/api/hello', (req, res) => {
    res.json({hello: 'world'})
});

// This is how I render React based pages
app.get(['/', '/users', '/routers'], (req, res) => {
    res.sendFile(__dirname + '/../build/index.html');
});

app.listen(9000);

当我通过浏览器打开 //users/routers 路径时,它会显示正确的 React 组件。

但是,当我尝试打开/api/hello时,它仍然试图生成不存在的React组件,而不是显示JSON响应!

如何停止让 React 的路由器覆盖 Express 的路由器?

=================更新=====================

我找到了有趣的解决方案。当我通过 POSTMAN 发出 api/hello 请求时,它向我显示了 JSON 响应。

这意味着 ReactJS 在浏览器级别有自己的缓存,这使得它看起来像是覆盖路由。

最佳答案

我找到了有趣的解决方案。当我通过 POSTMAN 发出 api/hello 请求时,它向我显示了 JSON 响应。

这意味着 ReactJS 在浏览器级别有自己的缓存,这使得它看起来像是覆盖路由。

关于javascript - ReactJS 路由器正在覆盖 ExpressJS 路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45049273/

相关文章:

javascript - 如何在 ionic 3 Angular 4 返回时停止重新加载页面

javascript - 解析字符串以创建子字符串数组

javascript - 如何在 react 组件中以不同形式显示数组的每个部分

javascript - 正则表达式用下划线替换两个指定字符串之间的空格

javascript - iPhone Safari 下拉菜单中的“下一步”不会触发更改事件

node.js - 无法加载c++ bson

javascript - Node.js 如何循环 JSON 来获取值

Javascript - 从字符串中删除特定字母

node.js - 在reactJS上配置现有项目

java - 使用 Android Studio 虚拟设备执行任务 ':react-native-gesture-handler:compileDebugJavaWithJavac' 失败