2017-10-12 3 views
1

Ich benutze react.js und und bekomme 404 Fehler auf meine fetch Anfrage.Express.js - kann meine Route finden

ich einfach ich versucht, meine Routen zu haben Rückkehr testing express.js...

[app.js]

'use strict'; 

const NODE_ENV = process.env.NODE_ENV; 
const PORT = process.env.PORT; 

const next = require('next'); 
const express = require('express'); 
const api = require('./api'); 

const client = next({ dev: NODE_ENV === 'development' }); 
const clientHandler = client.getRequestHandler(); 
const app = express(); 

client.prepare().then(() => { 
    app.use('/api', api); 
    app.get('*', (req, res) => clientHandler(req, res)); 
}); 

const listener = app.listen(PORT, err => { 
    if (err) throw err; 
    console.log('listening on port: %d', listener.address().port); //eslint-disable-line 
}); 

[/api/index.js]

'use strict'; 

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

app.get('/api/test', function (req, res) { 
    res.send('testing express.js...'); 
}); 

module.exports = app; 

[Körper.js]

Frage: Warum erhalte ich einen 404 Fehler?

Antwort

1

um Ihre /api/test Strecke richtig funktioniert, müssen Sie dies ändern:

app.get('/api/test', function (req, res) { 
    res.send('testing express.js...'); 
}); 

dazu:

app.get('/test', function (req, res) { 
    res.send('testing express.js...'); 
}); 

Ihr Router bereits betrachtet /api so, wenn Sie dann eine Route für /api/test auf dem Router setzen, waren Sie eigentlich eine Route für /api/api/test machen. Um es zu beheben, machen Sie die obige Änderung.


Auch sollte Ihre index.js Datei kein app Objekt werden. Es sollte ein express.Router() Objekt verwenden, obwohl ein app Objekt auch ein Router ist, so dass es irgendwie funktionieren könnte, aber es ist nicht so, wie es gemacht werden sollte.

+0

wow, ich kann nicht glauben, dass lol. Ich schwöre, ich habe das dreimal probiert ... Danke! –

Verwandte Themen