嗨,我是节点的新手,我正在构建一个简单的MEAN堆栈应用,以减少我发送这样的前端文件的代码
app.use(express.static(path.join(__dirname, 'public')));
我还为简单身份验证构建了一个简单的中间件
requireLogin = function (req, res, next) {
if (!req.user) {
console.log('redirecting :)');
res.redirect('/');
} else {
next();
}
};
app.use('/rooms',requireLogin);
我正试图在有角度的路线上使用这个中间件。 但是当我在我的角度应用程序中导航时它不起作用(当我直接将URL放到地址栏时它起作用)我还删除了由角度添加的/#/。
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
我正在使用ui-router进行路由。
答案 0 :(得分:3)
您应该在 angular 上重定向,但不能在node.js应用程序上重定向。例如,
def self.first_order_count
all.map(&:first_for_customer?).count(true)
end
然后,除非有用户登录,否则requireLogin = function (req, res, next) {
if (!req.user) {
console.log('User does not exist.');
return false;
//
} else {
next();
}
};
app.use('/rooms', requireLogin);
无法访问。
后端路由(快速路由):这些是最终用户不必了解甚至使用它们的路由(您的角度应用将使用它们与后端通信以处理其数据,但是最终用户不会将它们直接放在浏览器上))。
前端路由(有角度的路由):路由是否映射到应用程序的不同页面,因此,最终用户可以使用它们直接访问应用程序的某些部分。
阅读Express.js or angular for handling routes in a MEAN application?了解详情。