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

Why is Express taking so long between console logs on AngularJS $http.get?

本文关键字:之间 长时间 日志 控制台 AngularJS Express http get 为什么      更新时间:2023-09-26

使用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;
        };
    }
]);

我认为这是因为您没有在路由的get处理程序中结束响应。

试试这个。

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