2017-04-22 6 views
0

Ich bin nicht in der Lage, herauszufinden, wie Router und Expressroute zusammenarbeiten.reagiere Router und ausdrückliche GET-Konflikt

Ich habe dieses

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); 

Das Problem mein api verwenden kann nicht, weil es zu index.html umleitet. Wenn ich die Wildcard-Route entferne, könnte react-router nicht richtig funktionieren.

+2

ändern Sie einfach die Reihenfolge. Setzen Sie zuerst Ihre 'api' Routen und dann die' * 'Route ein – Panther

Antwort

2

Ihre app.get('*') Anweisung wird jede Anforderung entsprechen kommt in Sie können ganz einfach Ihr Problem beheben, indem Sie die Reihenfolge der Aussagen zu ändern.

// 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'); 
}); 

diese Weise alle Anforderungen, deren Pfad der Start mit /api wird von Ihrem behandelt werden apiRoutes Router, alle anderen werden mit dem Sternchen behandelt.

Verwandte Themen