2016-01-26 1 views
0

Так что я уже давно ломаю свой мозг, пытаясь понять это, и у меня все еще возникают проблемы.Express.js, req.params не называется

Так я определить маршрут, как это:

var home = require('./routes/home'); 
var app = express(); 

app.use('/home/:client', home); 

И мой home.js код выглядит следующим образом:

var express = require('express'); 
var router = express.Router(); 

router.get('/', function(req, res, next) { 
    res.render('homeview', { title: 'Welcome', 
          user: username}); 
}); 

router.get('/:client', function(req, res, next) { 
    var theClient = req.params.client; 
    console.log(theClient) 
}); 

module.exports = router; 

И тогда, когда я пытаюсь идти по следующему адресу:

http://www.localhost:3000/home/client

Ничего не происходит. По какой-то причине он никогда не попадает во второй роутер.get и никогда ничего не записывает. Кто-нибудь замечает, что не так?

+0

Что произойдет, если вы измените ваш 'app.use' к:' app.use (»/home ', home) ', а затем сохранить свой' home.js' как есть? –

ответ

0

Рабочий раствор @https://github.com/rmjoia/expressRoutes

app.js

var express = require('express'), 
    app = express(), 
    port = process.env.PORT || 3000, 
    homeRouter = require('./home'); 

app.use('/home', homeRouter); 

app.route('/') 
    .all(function (request, response, next) { 
     // Do some plumbing stuff 
     next(); 
    }) 
    .get(function (request, response, next) { 
     response.send('OK GET - Hello Stack Overflow'); 
     next(); 
    }); 

app.listen(port, function (error) { 
    if (error) { 
     console.error(error.message); 
    } 
    else { 
     console.info('Server up and running. Listening on port ' + port); 
    } 
}) 

home.js

var express = require('express'); 
var homeRouter = express.Router(); 

var router = (function (router) { 

    // define the home page route 
    router.get('/', function (req, res) { 
     res.send('home route - homepage'); 
    }); 
    // define the about route 
    router.get('/:client', function (req, res) { 
     res.send(req.params.client); 
    }); 

    return homeRouter; 
})(homeRouter); 

module.exports = router;