Node.js 未捕获错误:[$injector:unpr]未知提供程序:SessionInjector提供程序

Node.js 未捕获错误:[$injector:unpr]未知提供程序:SessionInjector提供程序,node.js,angularjs,angularjs-directive,loopbackjs,Node.js,Angularjs,Angularjs Directive,Loopbackjs,我不熟悉angular js、loopback和nodejs 在angular应用程序中实现身份验证时,我遇到了下面提到的错误 Uncaught Error: [$injector:unpr] Unknown provider: sessionInjectorProvider <- sessionInjector <- $http <- $compile 您的代码中肯定至少有两个错误: angular.module('myApp',[])创建一个模块,而angular.mod

我不熟悉angular js、loopback和nodejs

在angular应用程序中实现身份验证时,我遇到了下面提到的错误

Uncaught Error: [$injector:unpr] Unknown provider: sessionInjectorProvider <- sessionInjector <- $http <- $compile

您的代码中肯定至少有两个错误:

angular.module('myApp',[])
创建一个模块,而
angular.module('myApp')
调用该模块。这意味着在代码结束时,您将再次创建模块,从而丢失以前编写的内容

有不同的方式格式化此代码,解决此问题的方法是:

    angular.module('myApp', [])
        .factory('sessionInjectorProvider', ['SessionService', function(SessionService) {
            var sessionInjector = {
                request: function(config) {
                    if (!SessionService.isAnonymus) {
                config.headers['x-session-token'] = SessionService.token;
                    }
                    return config;
                }
            };
            return sessionInjector;
        }])
        .config(['$httpProvider', function($httpProvider) {
                    $httpProvider.interceptors.push('sessionInjectorProvider');
        }]);

另外,如前所述,您正在混合使用“SessionInjectProvider”和“sessionInjector”-您的拦截器应该使用“SessionInjectProvider”,如我上面发布的代码所示。

每次执行
angular.module('myApp',[])
模块是新创建的,以前注册到该模块的任何内容都将消失。您可能希望执行
angular.module('myApp').config..
也必须将
sessioninjectprovider
作为
sessioninjectprovider
注入拦截器,因此请尝试
angular.module('myApp').config(['$httpProvider',function($httpProvider){$httpProvider.interceptors.push('sessioninjectprovider');}]));这两个更改是否仍然存在相同的问题。请尝试在plunker中复制此错误。。应该不难,只有两个街区。。你自己会得到线索的
    angular.module('myApp', [])
        .factory('sessionInjectorProvider', ['SessionService', function(SessionService) {
            var sessionInjector = {
                request: function(config) {
                    if (!SessionService.isAnonymus) {
                config.headers['x-session-token'] = SessionService.token;
                    }
                    return config;
                }
            };
            return sessionInjector;
        }])
        .config(['$httpProvider', function($httpProvider) {
                    $httpProvider.interceptors.push('sessionInjectorProvider');
        }]);