Javascript 反应路由器和快速获取冲突
我不知道路由器和快速路线是如何协同工作的 我有这个Javascript 反应路由器和快速获取冲突,javascript,node.js,reactjs,express,react-router,Javascript,Node.js,Reactjs,Express,React Router,我不知道路由器和快速路线是如何协同工作的 我有这个 app.get('*', function(req, res) { res.sendFile(path.resolve(__dirname) + '/server/static/index.html'); }); // routes const apiRoutes = require('./server/routes/api'); app.use('/api', apiRoutes); 问题是我的api无法使用GET,因为它将重定向
app.get('*', function(req, res) {
res.sendFile(path.resolve(__dirname) + '/server/static/index.html');
});
// routes
const apiRoutes = require('./server/routes/api');
app.use('/api', apiRoutes);
问题是我的api无法使用GET,因为它将重定向到index.html。如果删除通配符路由,react路由器将无法正常工作。您的app.get('*')
语句将匹配任何传入的请求。您可以通过更改语句的顺序来解决问题:
// routes
const apiRoutes = require('./server/routes/api');
app.use('/api', apiRoutes);
app.get('*', function(req, res) {
res.sendFile(path.resolve(__dirname) + '/server/static/index.html');
});
这样,路径以/api
开头的任何请求都将由apirouts
路由器处理,其他所有请求都由星号处理。您的app.get('*')
语句将匹配任何传入的请求。您可以通过更改语句的顺序来解决问题:
// routes
const apiRoutes = require('./server/routes/api');
app.use('/api', apiRoutes);
app.get('*', function(req, res) {
res.sendFile(path.resolve(__dirname) + '/server/static/index.html');
});
这样,路径以
/api
开头的任何请求都将由apirouts
路由器处理,其他所有请求都由星号处理。只需更改顺序即可。首先放置您的api
路线,然后是*
路线必须更改顺序。首先放置您的api
路线,然后放置*
路线