Ответ 1
Я бы использовал: https://github.com/expressjs/session после аутентификации пользователя, тогда вы можете проверить правильные сеансы в контроллере, который обрабатывает маршрут экспресс.
Обновленный ответ
Вот как я бы выполнил регистрацию пользователя управления
/**
* Module dependencies
*/
var express = require('express'),
http = require('http'),
session = require('express-session'),
app = module.exports = express();
/**
* Configuration
*/
// all environments
app.set('port', process.env.PORT || 3000);
app.set('trust proxy', 1);
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: {
secure: true
}
}));
function checkUserLoggedIn(req, res, next) {
return req.session;
}
/**
* Routes to control by default is logged in with a regular expression
*/
app.get('/user/:use_id/*', function (req, res, next) {
if (checkUserLoggedIn(req)) {
console.log('User logged');
next();
} else {
console.log('error');
}
});
/**
* User Home
*/
app.get('/user/:use_id/home/', function (req, res, next) {
if (checkUserLoggedIn(req)) {
console.log('User logged goes to home');
next();
} else {
console.log('error');
}
});
/**
* Home for user that is actually logged
*/
app.get('/guest/dashboard', function (req, res, next) {
console.log('This is guest dashboard');
});
/**
* Home for user that is actually logged
*/
app.get('/guest/home', function (req, res, next) {
console.log('This is guest home');
});
/**
* Start Server
*/
http.createServer(app).listen(app.get('port'), function () {
console.log('Express server listening on port ' + app.get('port'));
});
Затем запустите
$node app.js
Перейдите в браузер и получите доступ к http://localhost:3000/home
Регулярное выражение, которое вы определили для управления '/*', получает всю маршрутизацию по умолчанию, а затем переходит к следующему маршруту, который соответствует, thats/home.
Это один из способов сделать это, возможно, есть лучший и более четкий способ решения этой проблемы. В регулярном выражении вы контролируете, что вы имеете в виду, с маршрутами по умолчанию и для каждого конкретного случая.