我正在開發一個帶有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
是的。我目前正試圖創建一個角度服務工廠訪問快速路線,但沒有數據我想發佈或得到,我只想表達到控制檯日誌 –