2015-08-16 50 views
0

我們可以有一個快遞應用,用2個不同的意見/路線根據用戶類型?不同意見/路線按用戶類型分別爲express.js

實施例: 我有基於用戶改變登錄2種用戶類型管理員和普通用戶,我怎樣才能每個用戶重定向到不同的視圖/路由

等之後登錄管理用戶去管理儀表板和普通用戶轉到配置文件頁面,同時請記住,一種類型的用戶無法評估其他類型的用戶路線。

任何投入,將有助於

感謝

回答

4

在你可以只改變基於用戶的類型是這樣的一個觀點一個簡單的方法:

function homeMiddleware (req, res, next) { 
    var view = user.admin ? 'admin' : 'profile'; 
    res.render(view); 
} 

app.get('/home', homeMiddleware); 

但如果你想單獨的代碼你的路線,那麼你應該遵循以下重構Strategy pattern

// Define your routes for each user types 
var UserRouteStrategy = { 
    home: require('./routes/user/profile') 
}; 

var AdminRouteStrategy = { 
    home: require('./routes/admin/dashboard') 
}; 

// Early as possible assign current strategy based on user type 
function (req, res, next) { 
    req.routeStrategy = req.user.admin ? AdminRouteStrategy : UserRouteStrategy 
    next(); // don't forget this 
} 

// And handle your routes with current strategy 
app.get('/home', function (req, res, next) { 
    req.routeStrategy.home(req, res, next); 
}); 

使用上述方法,您可以通過在一個地方添加新的用戶類型和控制訪問來擴展您的應用程序。

+0

是的,還需要分開出來的路線,看起來很整齊,謝謝阿爾喬姆:)會試試這個 –