我正在开发一个带有mean.js样板代码的Web应用程序。最近,我通过创建一个分析模块并添加了一些路线逻辑和下面的代码,为我的应用程序(“分析”页面)添加了一个视图。了解与AngularJS结合的Express路由(使用mean.js样板)
//Setting up route
angular.module('analysis').config(['$stateProvider',
function($stateProvider) {
// Projects state routing
$stateProvider.
state('imageAnalysis', {
url: '/image_analysis',
templateUrl: 'modules/analysis/views/tools.client.view.html'
});
}
]);
这工作只是丹迪,我可以去homepage/image_analysis,看到我的tools.client.view.html页面。
我的目标现在是让这个页面只对登录的用户可见。我的第一个方法是检查用户是否登录了角度路由逻辑,这对我来说已经证明是困难的。我还读到,在前端检查身份验证是非常不安全的。所以我决定检查用户是否使用Express路由登录。
这里是什么快速路由看起来像模块我的其他AngularJS的一个
module.exports = function(app) {
var users = require('../../app/controllers/users.server.controller');
var projects = require('../../app/controllers/projects.server.controller');
// Projects Routes
app.route('/projects')
.get(users.requiresLogin, projects.list)
.post(users.requiresLogin, projects.create);
app.route('/projects/:projectId')
.get(users.requiresLogin, projects.read)
.put(users.requiresLogin, projects.hasAuthorization, projects.update)
.delete(users.requiresLogin, projects.hasAuthorization, projects.delete);
// Finish by binding the Project middleware
app.param('projectId', projects.projectByID);
};
通知的users.requiresLogin功能,检查是否有用户登录,如果用户重定向到登录页面的例子,他们不是。我想利用这个功能。有些东西,我不太明白的样板代码是app.route()的目的是什么?我认为这可能是一个中间件,但我不确定它的功能。
以下是我在采用快速路由时所采取的一些尝试。这些尝试在我创建的我的分析.server.routes.js文件中。
尝试1
module.exports = function(app) {
var users = require('../../app/controllers/users.server.controller');
// analysis routes
app.get('/image_analysis', function(req, res) {
console.log('helloworld');
console.log('helloworld');
console.log('helloworld');
console.log('helloworld');
console.log('helloworld');
console.log('helloworld');
});
};
我想,当我访问image_analysis页面,这将登录“的HelloWorld”,但它没有出现做任何事情。
尝试2
module.exports = function(app) {
var users = require('../../app/controllers/users.server.controller');
// analysis routes
app.route('/image_analysis')
.get(users.requiresLogin);
};
基于其他的代码,我想这可能工作,需要分析页面登录。但它什么都没做。
任何帮助将不胜感激!感谢大家,我现在正在努力掌握快速路由,并且stackoverflow已经得到了巨大的帮助。
感谢您的回复。 ('*',function(req,res){res.send(angularApp); //你的角应用在这里服务 });' –
@ DanielJacobson我明白了。你正在使用[meanjs样板](https://github.com/meanjs/mean)?并且你将'analysis.server.routes.js'存储在'/ app/routes /'中?它*应该*然后工作... – laggingreflex
是的。我目前正试图创建一个角度服务工厂访问快速路线,但没有数据我想发布或得到,我只想表达到控制台日志 –