为什么Express在AngularJS $ http.get上的控制台日志之间花了这么长时间?

时间:2015-06-01 18:37:17

标签: javascript angularjs node.js express

使用Express,Node和Angular,我在我的站点上设置了一个HTML按钮,该按钮运行对Express的get请求,该按钮随后运行控制台记录预定义消息的功能。第一次按下按钮时,日志会立即出现在我的终端中。 问题是我第一次点击它之后,打印控制台消息会有很大的延迟。在此先感谢您的帮助!
我的文件

analysis.server.routes.js =>用于处理分析页面路由的Express文件。

'use strict';

module.exports = function(app) {
    // analysis routes
    app.route('/image_analysis')
        .get(function(req, res) {
            console.log('I\'ve been hit!!!');
        });
};

analysis.client.controller.js => AngularJS控制器。按下HTML按钮时,sayHello函数运行

'use strict';

angular.module('analysis').controller('AnalysisController', ['$scope', '$http', '$location', 'Authentication',
    function($scope, $http, $location, Authentication) {
        $scope.user = Authentication.user;
        $scope.sidebarCollapsed = false;

        // redirect to homepage if user isn't logged in
        if (!$scope.user) $location.path('/');

        $scope.sayHello = function() {
            $http.get('/image_analysis');
        };

        // highlight open chevron on mouseover

        $scope.toggleSidebar = function() {
            /* jshint ignore:start */
            $("#wrapper").toggleClass("toggled");
            /* jshint ignore:end */
            $scope.sidebarCollapsed = !$scope.sidebarCollapsed;
        };
    }
]);

1 个答案:

答案 0 :(得分:2)

我认为这是因为你没有在路线的get hanlder中结束回应。

试试这个。

module.exports = function(app) {
    // analysis routes
    app.route('/image_analysis')
        .get(function(req, res) {
            console.log('I\'ve been hit!!!');
            res.end();
        });
};