javascript - 如何从节点服务器到AngularJS控制器获取请求路径变量值

原文 标签 javascript angularjs node.js express ejs

我想从电子邮件客户端内部(例如,Gmail)通过使用ExpressJS发送到节点服务器的链接获取token路径变量的值,然后在控制器(MyController)中提供该值。

服务器正在显示视图reset.ejs,并将传递的token值作为参数传递给它。

以下是上述情况的代码:

server.js(ExpressJS)

app.get('/reset/:token', function (req, res) {
    User.findOne({ resetPasswordToken: req.params.token, resetPasswordExpires: { $gt: Date.now() } }, function(err, user) {
        if (!user) {
            res.render('reset', {  title: 'Foo  in a Bar', token: req.params.token, invalidTokenMsg: "Password reset token is invalid or has expired" });
        } else {
            res.render('reset', {  title: 'Foo in a Bar', token: req.params.token, invalidTokenMsg: "Choose a strong password" });
        }
    });
});


reset.ejs(EJS)

<!DOCTYPE html>
<html lang="en" xmlns:ng="http://angularjs.org" id="ng-app" ng-app="myApp">
<!-- stuff inside head -->
<head>

</head>
<body >
    <!-- stuff inside body-->
</html>


myapp.js(AngularJS)

angular.module('myApp', [])
.controller('MyController', ['$scope', function($scope) {
    //how to get the value of token here?
}]);


有人告诉我如何在控制器中获取token值?

最佳答案

理想情况下,请求调用必须源自控制器内部。会不会像

angular.module('myApp', [])
.controller('MyController', ['$scope', $http, function($scope) {
    $http.get('reset/:token',{token:'xyzabc'}).then(function(data){
     });
}]);


(或)如果令牌更像是全局对象,则可以使用$ provide.constant并注入其他控制器对象。

相关文章:

javascript - JavaScript:在Android上输入文本时阻止退格

javascript - 带有Webpack的Bunyan-尝试访问已填充的fs

javascript - 注册自定义Helper Express和HBS

angularjs - Angular 2.0是否与Angular 1中的$ setPristine函数相似?

javascript - 在AngularJS中上传文件

node.js - 错误:节点中的证书已过期

javascript - JavaScript在两个操作数之间有一个以上的加号或减号运算符

angularjs - 在AngularJs中设置动态范围变量-scope。<some_string>

javascript - 如何在array.map()循环中每50次迭代设置超时?

javascript - JetBrains WebStorm中的JavaScript变量颜色