【发布时间】:2014-10-19 10:21:56
【问题描述】:
我有一个用 express.js 编写的应用程序,我正在尝试将此应用程序分为 2 个部分:
- 一个用于未经授权的用户(仅路由到 / - 登录页面、/login 和 /* - error404)
- 第二个(路由将是:/ - 登录页面,/app/* - 将自行处理路由的角度 SPA)
Express 还配置为从/unauth/public/ 获取静态文件
我想为来自授权路由的请求添加第二个静态文件夹 - /auth/public
转到 /app/*
我的路线配置如下所示:
var authRoutes = express.Router();
var unauthRoutes = express.Router();
authRoutes.get('/app/*', function(req, res, next) {
if(!req.isAuthenticated())
return res.redirect("/login/");
res.send("AUTHORIZED");
});
unauthRoutes.get('/', function(req, res, next) {
res.send("LANDING PAGE");
});
unauthRoutes.get('/login/', function(req, res, next) {
if(req.isAuthenticated())
return res.redirect("/app/");
res.send("LOGIN PAGE");
});
unauthRoutes.get('/registration/', function(req, res, next) {
if(req.isAuthenticated())
return res.redirect("/app/");
res.send("REGISTRATION PAGE");
});
unauthRoutes.get('/*', function(req, res, next) {
res.send("ERROR 404");
});
app.use('/', authRoutes);
app.use('/', unauthRoutes);
我尝试修改 req.url 并基于此调用另一个静态 oruter express.static('auth/public'):
Using express.static middleware in an authorized route
但我不知道,如何处理路由app.get('/auth/*', ...) - 之前的修改将替换 url,并且永远不会调用此路由..
【问题讨论】: