如何使用nodejs从角度获得等效的“req.something”
Posted
技术标签:
【中文标题】如何使用nodejs从角度获得等效的“req.something”【英文标题】:How to get equivalent of "req.something" from in angular with nodejs 【发布时间】:2014-10-17 08:34:38 【问题描述】:我正在关注如何使用 nodejs 和护照设置身份验证的教程。 (http://scotch.io/tutorials/javascript/easy-node-authentication-setup-and-local)
本教程让我使用 ejs 渲染模板并传入 flash 数据。
而不是这个,我想使用 angularjs。我遇到问题的部分是获取闪存数据。我知道如何使用模板和发送变量,但是 Angular 中的什么替换了下面代码中的“req.flash('signupMessage')”?
这是教程显示的代码:
app.get('/signup', function(req, res)
// render the page and pass in any flash data if it exists
res.render('signup.ejs', message: req.flash('signupMessage') );
);
这是我设置路线的代码
// public/js/appRoutes.js
angular.module('appRoutes', []).config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider)
$routeProvider
// show signup form
.when('/signup',
templateUrl: 'views/signup.html',
controller: 'SignupController'
);
$locationProvider.html5Mode(true);
]);
这里是控制器:
// public/js/controllers/SetupCtrl.js
angular.module('SignupCtrl', []).controller('SignupController', function($scope)
$scope.tagline = 'TEST';
);
【问题讨论】:
Flash 数据是一个服务器端(实际上是基于会话的)构造。您不能只在 angularjs 中“使用闪存数据”,因为 angular 是在客户端而不是服务器上运行的。您必须将闪存数据从服务器传递到客户端,然后对其进行处理(我猜您的意思是显示它)给用户。 angularjs 中没有任何东西替换req.flash
。
【参考方案1】:
这里回答了一个类似的问题:What is the proper way to log in users using Angular & Express?
TLDR:发布的答案是以下链接,作者在其中描述您需要将所有护照资料保留在服务器端,然后允许客户端(角度资料)请求有关会话的信息。 http://vickev.com/#!/article/authentication-in-single-page-applications-node-js-passportjs-angularjs
【讨论】:
以上是关于如何使用nodejs从角度获得等效的“req.something”的主要内容,如果未能解决你的问题,请参考以下文章
如何遍历从 REST API 获得的响应对象并以角度 2 在视图中显示数据
如何使用 mysql 数据库中的 nodejs 和 socket.io 在网页上获得实时更新?