Javascript 带有用户名的Expressjs路由

Javascript 带有用户名的Expressjs路由,javascript,node.js,routes,express,Javascript,Node.js,Routes,Express,我试图在expressjs中使用用户名作为路由,以查看他们的个人资料 app.get('/:username', function (req, res, next) { users.get_user(req.params.username, function (err, results) { if(results[0]) { res.render('/profile', { title: 'Profile',

我试图在expressjs中使用用户名作为路由,以查看他们的个人资料

app.get('/:username', function (req, res, next) {
    users.get_user(req.params.username, function (err, results) {
        if(results[0]) {
            res.render('/profile', {
                title: 'Profile',
                userinfo: results[0]
            });
        } else {
            next();
        }
    });
});

users.get\u user
是一个从数据库获取用户的函数。如果找不到用户,则继续下一条路线。我还有很多其他页面,如
/start
/forum
等。这样做是否不够,因为每次数据库通过
/:username
路由时都会调用它。我的问题是,有没有更好更充分的方法?

尝试在应用程序中的
/:username
路由之前定义更具体的路由(例如
/start
/forum
)。Express按您定义的顺序匹配路由

例如,这样做:

app.get('/start', function(req, res, next) {...});
app.get('/forum', function(req, res, next) {...});
app.get('/:username', function(req, res, next) {...});
不是


这样,如果用户转到
/start
,它不会点击
/:username
路径并导致数据库点击。

是否可以执行类似app.get的操作('/:username,function(req,res,next){…});和app.get('/:username/somethingmore',函数(req,res,next){…});
app.get('/:username', function(req, res, next) {...});
app.get('/start', function(req, res, next) {...});
app.get('/forum', function(req, res, next) {...});