簡體   English   中英

Expressjs路由與用戶名

[英]Expressjs routes with username

我試圖使用用戶名作為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_user是從數據庫獲取用戶的函數。 如果找不到用戶,則繼續下一條路線。 我也有很多其他頁面,例如/start/forum等。這是否是一種不足的方法,因為每次通過/:username路由時都會有一個對db的調用。 我的問題是,是否有更好更好的方法?

嘗試在應用程序中的/: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) {...});

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

這樣,如果用戶轉到/start ,它將不會命中/:username路由並導致數據庫命中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM