我在教自己的node.js,我採取了熱毛巾模板並開始擴展它的功能。 我已經添加了一個新的角色文件上傳控制器。 它的工作原理罰款的地方,我嘗試並實現對新模塊噶測試點,於是它拋出這個錯誤節點JS Karma測試 - HotTowel模板擴展
Chrome 46.0.2490 (Mac OS X 10.11.1) UploadController "before each" hook for "should be created successfully" FAILED
Error: [$injector:unpr] Unknown provider: routerHelperProvider <- routerHelper
http://errors.angularjs.org/1.4.7/$injector/unpr?p0=routerHelperProvider%20%3C-%20routerHelper
at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:68:12
at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4289:19
at Object.getService [as get] (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4437:39)
at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4294:45
at getService (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4437:39)
at Object.invoke (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4469:13)
at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4299:79
at forEach (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:336:20)
at Object.createInjector [as injector] (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4299:3)
at Context.workFn (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-mocks/angular-mocks.js:2427:52)
Chrome 46.0.2490 (Mac OS X 10.11.1) UploadController "after each" hook: workFn for "should be created successfully" FAILED
Error: [$injector:unpr] Unknown provider: routerHelperProvider <- routerHelper
http://errors.angularjs.org/1.4.7/$injector/unpr?p0=routerHelperProvider%20%3C-%20routerHelper
at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:68:12
at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4289:19
at Object.getService [as get] (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4437:39)
at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4294:45
at getService (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4437:39)
at Object.invoke (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4469:13)
at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4299:79
at forEach (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:336:20)
at Object.createInjector [as injector] (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4299:3)
at Context.workFn (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-mocks/angular-mocks.js:2427:52)
Chrome 46.0.2490 (Mac OS X 10.11.1) upload routes state "before each" hook for "should map state upload to url /upload " FAILED
Error: [$injector:unpr] Unknown provider: routerHelperProvider <- routerHelper
http://errors.angularjs.org/1.4.7/$injector/unpr?p0=routerHelperProvider%20%3C-%20routerHelper
at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:68:12
at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4289:19
at Object.getService [as get] (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4437:39)
at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4294:45
at getService (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4437:39)
at Object.invoke (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4469:13)
at /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4299:79
at forEach (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:336:20)
at Object.createInjector [as injector] (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular/angular.js:4299:3)
at Context.workFn (/Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-mocks/angular-mocks.js:2427:52)
Chrome 46.0.2490 (Mac OS X 10.11.1): Executed 42 of 45 (3 FAILED) (0.371 secs/0.053 secs)
的上傳控制器看起來像: -
(function() {
'use strict';
angular
.module('app.upload',['angularFileUpload'])
.controller('UploadController', UploadController);
UploadController.$inject = ['logger','FileUploader','$scope'];
/* @ngInject */
function UploadController(logger, FileUploader, scope) {
var vm = this;
vm.title = 'Upload';
var uploader = scope.uploader = new FileUploader({
url: '/upload'
});
activate();
function activate() {
logger.info('Activated Upload View');
}
// FILTERS
uploader.filters.push({
name: 'customFilter',
fn: function(item /*{File|FileLikeObject}*/, options) {
return this.queue.length < 10;
}
});
// CALLBACKS
uploader.onWhenAddingFileFailed = function(item /*{File|FileLikeObject}*/, filter, options) {
console.info('onWhenAddingFileFailed', item, filter, options);
};
uploader.onAfterAddingFile = function(fileItem) {
console.info('onAfterAddingFile', fileItem);
};
uploader.onAfterAddingAll = function(addedFileItems) {
console.info('onAfterAddingAll', addedFileItems);
};
uploader.onBeforeUploadItem = function(item) {
console.info('onBeforeUploadItem', item);
};
uploader.onProgressItem = function(fileItem, progress) {
console.info('onProgressItem', fileItem, progress);
};
uploader.onProgressAll = function(progress) {
console.info('onProgressAll', progress);
};
uploader.onSuccessItem = function(fileItem, response, status, headers) {
console.info('onSuccessItem', fileItem, response, status, headers);
};
uploader.onErrorItem = function(fileItem, response, status, headers) {
console.info('onErrorItem', fileItem, response, status, headers);
};
uploader.onCancelItem = function(fileItem, response, status, headers) {
console.info('onCancelItem', fileItem, response, status, headers);
};
uploader.onCompleteItem = function(fileItem, response, status, headers) {
console.info('onCompleteItem', fileItem, response, status, headers);
};
uploader.onCompleteAll = function() {
console.info('onCompleteAll');
};
console.info('uploader', uploader);
}
})();
上傳的路由.js文件看起來是這樣的: -
(function() {
'use strict';
angular
.module('app.upload')
.run(appRun);
appRun.$inject = ['routerHelper'];
/* @ngInject */
function appRun(routerHelper) {
routerHelper.configureStates(getStates());
}
function getStates() {
return [
{
state: 'upload',
config: {
url: '/upload',
templateUrl: 'app/upload/upload.html',
controller: 'UploadController',
controllerAs: 'vm',
title: 'Upload',
settings: {
nav: 3,
content: '<i class="fa fa-lock"></i> Upload'
}
}
}
];
}
})();
測試規範的樣子: -
/* jshint -W117, -W030 */
describe('UploadController', function() {
var controller;
beforeEach(function() {
bard.appModule('app.upload');
bard.inject('$controller', '$log', '$rootScope');
});
beforeEach(function() {
controller = $controller('UploadController');
$rootScope.$apply();
});
bard.verifyNoOutstandingHttpRequests();
describe('Upload controller', function() {
it('should be created successfully', function() {
expect(controller).to.be.defined;
});
describe('after activate', function() {
it('should have title of Upload', function() {
expect(controller.title).to.equal('Upload');
});
it('should have logged "Activated"', function() {
expect($log.info.logs).to.match(/Activated/);
});
});
});
});
我找到一個鏈接,指出當所有必需的依賴關係未加載時發生此錯誤。這個構建是通過吞噬精心策劃的。 gulp.js和gulp.config文件看起來很好,並且正確的資源在瀏覽器中加載。
,當我在SingleRun模式= false運行杯和產卵的Chrome實例我得到的的console.log如下: -
15 11 2015 23:21:37.527:WARN [proxy]: failed to proxy /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map (connect ECONNREFUSED 127.0.0.1:8888)
15 11 2015 23:21:37.528:DEBUG [middlware:source-files]: Requesting /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map/
15 11 2015 23:21:37.528:DEBUG [middlware:source-files]: Fetching /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map
15 11 2015 23:21:37.529:DEBUG [proxy]: proxying request - /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map to localhost:8888
15 11 2015 23:21:37.531:WARN [proxy]: failed to proxy /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map (connect ECONNREFUSED 127.0.0.1:8888)
15 11 2015 23:21:37.532:DEBUG [middlware:source-files]: Requesting /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map/
15 11 2015 23:21:37.532:DEBUG [middlware:source-files]: Fetching /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map
15 11 2015 23:21:37.532:DEBUG [proxy]: proxying request - /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map to localhost:8888
15 11 2015 23:21:37.533:WARN [proxy]: failed to proxy /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map (connect ECONNREFUSED 127.0.0.1:8888)
15 11 2015 23:21:37.534:DEBUG [middlware:source-files]: Requesting /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map/
15 11 2015 23:21:37.534:DEBUG [middlware:source-files]: Fetching /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map
15 11 2015 23:21:37.534:DEBUG [proxy]: proxying request - /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map to localhost:8888
15 11 2015 23:21:37.535:WARN [proxy]: failed to proxy /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map (connect ECONNREFUSED 127.0.0.1:8888)
15 11 2015 23:21:37.536:DEBUG [middlware:source-files]: Requesting /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map/
15 11 2015 23:21:37.546:DEBUG [middlware:source-files]: Fetching /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map
15 11 2015 23:21:37.546:DEBUG [proxy]: proxying request - /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map to localhost:8888
15 11 2015 23:21:37.547:WARN [proxy]: failed to proxy /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map (connect ECONNREFUSED 127.0.0.1:8888)
15 11 2015 23:21:37.548:DEBUG [middlware:source-files]: Requesting /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map/
15 11 2015 23:21:37.548:DEBUG [middlware:source-files]: Fetching /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map
15 11 2015 23:21:37.548:DEBUG [proxy]: proxying request - /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map to localhost:8888
15 11 2015 23:21:37.549:WARN [proxy]: failed to proxy /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map (connect ECONNREFUSED 127.0.0.1:8888)
15 11 2015 23:21:37.549:DEBUG [middlware:source-files]: Requesting /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map/
15 11 2015 23:21:37.549:DEBUG [middlware:source-files]: Fetching /Users/simon/Documents/Development/angular_dev/billrecon/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map
15 11 2015 23:21:37.550:DEBUG [proxy]: proxying request - /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map to localhost:8888
15 11 2015 23:21:37.550:WARN [proxy]: failed to proxy /base/bower_components/angular-file-upload/dist/angular-file-upload.min.js.map (connect ECONNREFUSED 127.0.0.1:8888)
***編輯 - 跑了一口試驗--startServers =真 - 確保服務器已啓動並克服連接的拒絕錯誤。儘管
仍然得到routerHelperProvider問題文件存在於正確的地方。
我想我正在做一些明顯的錯誤,但我無法看到它。 有什麼建議嗎?
感謝
西蒙