节点redirect不能在angular度上工作
嗨,我是新的节点,我正在build立一个简单的MEAN堆栈应用程序,以减less我发送像这样的前端文件的代码
app.use(express.static(path.join(__dirname, 'public')));
我也build立了一个简单的authentication中间件
requireLogin = function (req, res, next) { if (!req.user) { console.log('redirecting :)'); res.redirect('/'); } else { next(); } }; app.use('/rooms',requireLogin);
我试图在angular度上使用这个中间件。 但是这不工作,当我浏览我的angular度的应用程序(它工作时,我直接把url到地址栏)我也删除了/#/这是由angular添加。
$locationProvider.html5Mode({ enabled: true, requireBase: false });
我正在使用ui路由器进行路由。
你应该redirectangular度 ,而不是node.js应用程序。 例如,
requireLogin = function (req, res, next) { if (!req.user) { console.log('User does not exist.'); return false; // } else { next(); } }; app.use('/rooms', requireLogin);
那么,除非有用户login,否则/rooms
将无法访问。
后端路由(明确的):这些是最终用户不必知道或甚至使用它们的路由(你的angular度应用将使用它们与后端进行通信以处理其数据,但最终用户不会把它们直接在浏览器上))。
前端路线(angular度路线):是映射到应用程序不同页面的路线,因此,最终用户可以使用它们直接访问应用程序的某些部分。
在MEAN应用程序中读取Express.js或angular来处理路由? 更多细节。