我怎样才能在node express中使用路由器并且仍然有通配符和params?

时间:2016-04-30 04:24:26

标签: node.js express routing

所以基本上我希望我的代码可以转到mywebsite.com/username,然后将它们带到他们的个人资料中。

我的app.js有 -

var user = require('./routes/user');
app.use('/*', user);

然后在我的user.js中我有

router.get('/:username', function(req, res) {
    console.log('the user name', req.params.username);
})

如果我将router.get更改为router.get(' /'),我的console.log会注销undefined,如果我将其保留为router.get(' /:username&# 39;)我得到了404 ..我也尝试过app.use(' /:用户名',用户),但仍然无法正常工作。

1 个答案:

答案 0 :(得分:0)

您不应该像app.use

那样拥有通配符

尝试这样的事情。

另请参阅快速路由器文档http://expressjs.com/en/guide/routing.html

// Required Moduiles
var express = require('express');
var router = express.Router();
var app = express();


// Add route to get
router.get('/:username', function(req, res) {
    res.status(200).send(req.params.username)
})

// Add username
app.use('/', router)


// Start express server
app.listen(3030);

更新 -

如果你要在一个单独的文件中创建的新路由器实例/中间件中包含所有路由,那么只使用app.use(router)会做同样的事情。