Fehler 404 beim Routing mit Express und Nodejs
Habe ich eine grundlegende Knoten - /Express-App und versuche Sie zu implementieren Routen basierend auf der Trennung von Logik in verschiedenen Dateien.
In Server.js
var app = express();
var router = express.Router();
require('./app/routes/users')(router);
require('./app/routes/events')(router);
require('./app/routes/subscribe')(router);
require('./app/routes/login')(router);
app.use('/api',router);
. /app/routes/users.js
module.exports = function(router){
router.route('/users/')
.all(function(req, res, next) {
//runs for all HTTP verbs first
//think of it as route specific middleware!
})
.get(function(req, res, next) {
res.json(req.user);
})
.put(function(req, res, next) {
//just an example of maybe updating the user
req.user.name = req.params.name;
//save user ... etc
res.json(req.user);
})
.post(function(req, res, next) {
next(new Error('not implemented'));
})
.delete(function(req, res, next) {
next(new Error('not implemented'));
})
router.route('/users/:user_id')
.all(function(req, res, next) {
//runs for all HTTP verbs first
//think of it as route specific middleware!
})
.get(function(req, res, next) {
res.json(req.user);
})
.put(function(req, res, next) {
//just an example of maybe updating the user
req.user.name = req.params.name;
//save user ... etc
res.json(req.user);
})
.post(function(req, res, next) {
next(new Error('not implemented'));
})
.delete(function(req, res, next) {
next(new Error('not implemented'));
})
}
Alle Routen sind der Rückgabe 404-Nicht Gefunden.
Hat jemand Vorschläge auf die beste Weise zu realisieren modulare routing-Express-Apps ?
Ist es möglich, laden mehrere Routen in eine einzige Instanz von express.Router() ?
------------Bearbeiten---------------
Auf Weitere Tests
Habe ich in der Lage, um das Debuggen der express.Router() lokale Instanz, und die routing-layer stack in die lokale "router" variable aktualisiert wird mit den Routen der einzelnen Module.
Die Letzte Zeile:
app.use('/api', router);
erfolgreich ist auch die Fortschreibung der globalen app-Instanz der internen app.router-Objekt mit dem korrekten routing-Ebenen von der lokalen router-Instanz übergeben werden.
Ich denke, das Problem ist, dass die Routen für das "/api " auf Nummer 13-14 in die routing-layer stack, so gibt es einige Problem weiter bis der Stapel mit einigen anderen middleware-routing nicht lassen sich die Routen bis zum Ende... ich muss nur um diese aufzuspüren, denke ich.
InformationsquelleAutor drunkmeerkat | 2014-09-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier zwei Probleme :
(1) Sieht aus wie die
router.route().all
war nicht wieder ein Ergebnis, oder das aufrufen dernext()
route in der Ebene.Gibt es hier einen Artikel auch.
https://groups.google.com/forum/#!Thema/express-js/zk_KCgCFxLc
Wenn ich entfernen .alle oder einfügen
next()
in die.all
Funktion, das routing korrekt funktioniert.(2) die nachfolgende
'/'
in der route-definition wurde ein weiterer Fehler verursachtalso
router.route('/users/')
sollterouter.route('/users')
Der Schrägstrich ist wichtig.
InformationsquelleAutor drunkmeerkat
Versuchen Sie folgenden Weg,
Server.js
In Sie app/routes/users.js
InformationsquelleAutor Jigar Jain