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

Schreibe einen Kommentar