我怎么能在nodeexpress中仍然使用路由器,并且仍然有通配符和params



所以基本上我希望我的代码能够访问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将未定义地注销,如果我将其保留为router.get('/:username'),则我会得到404。我也尝试过使用app.use('/:username',user),但仍然不起作用。

您不需要像在app.use 上那样使用通配符

试试这样的东西。

另请参阅express路由器文档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)也可以做同样的事情。

最新更新