【问题标题】:How to map URL to node.js route如何将 URL 映射到 node.js 路由
【发布时间】:2016-08-08 19:28:54
【问题描述】:

我正在使用带有 Angular 和 Node.js 的 ui-router 作为我的 UI 服务器,用于对另一台服务器进行 API 调用。现在,我的浏览器 URL(基于下拉选择的动态)没有映射到服务器。

例如,当我将用户输入发送到 Node.js 时,浏览器 URL 是“/home?color=Red&&size=Large”。当我将该 URL 复制并粘贴到另一个浏览器窗口中时,我希望颜色和大小下拉列表已经被选择为红色和大,并且基于显示的选择来自 API 调用的结果。我怎样才能做到这一点?

我的 AngularJS 控制器代码:

$scope.getResults = function() {

    $location.search('color', $scope.myColor);
    $location.search('size', $scope.mySize);

    server.getResults($scope.myColor, $scope.mySize)
    .success(function(data) {
        results = data;
    });
};

上述功能的AngularJS服务:

app.factory('server', ['$http', function($http){
    return { 
        getResults : function(color, size) {
            var req = {};
            req.color = color;
            req.size = size;

            return $http({
                method: 'GET', 
                url: 'results',
                params : req
            });
        }
    }
}]);

Angular 中的 ui-router:

$stateProvider.state('home', {
    url: '/home',
    templateUrl: '/home.html',
    controller: 'MainCtrl',
    reloadOnSearch: false
})

在 Node.js 中,我的路线是这样的:

app.get("/results", function (req, res) {

    var api = 'some api call/' + req.query.color + '/' + req.query.size;

    request(api, function (error, response, api) {

        if (!error && response.statusCode == 200) {
            res.json({
                Response: api
            });
        }
    });
});

【问题讨论】:

    标签: html angularjs node.js url angular-ui-router


    【解决方案1】:

    在您的代码中,您编写了查询参数,但您需要阅读它们,试试这个:

    $scope.getResults = function() {
    
      $scope.myColor = $location.search().color;
      $scope.mySize = $location.search().size;
    
      server.getResults($scope.myColor, $scope.mySize)
      .success(function(data) {
        results = data;
      });
    };
    

    【讨论】:

    • @sergiy.draunov 谢谢,但它仍然没有约束力。执行此操作后,下拉列表仍全部设置为空白
    • 这也会使结果消失
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2018-01-28
    • 1970-01-01
    相关资源
    最近更新 更多