Я использую Yeoman, Grunt и Bower, чтобы построить платформу для построения интерфейса независимо от бэкэнда. Идея состоит в том, что весь мой (AngularJS) контроллер, службы, фабрики и т. Д. Живут в этом проекте и затем вводятся в мою серверную кодовую базу, основываясь на результате сборки grunt.Использование Grunt to Mock Endpoints
Мой вопрос:
Как я могу издеваться конечных точек, так что сервер Grunt отвечает на те же конечные точки, как мой (Rails) приложение?
В настоящее время я использую:
angular.module('myApp', ['ngResource'])
.run(['$rootScope', function ($rootScope) {
$rootScope.testState = 'test';
}]);
А потом в каждом из моих индивидуальных услуг:
mockJSON = {'foo': 'myMockJSON'}
И на каждом методе:
if($rootScope.testState == 'test'){
return mockJSON;
}
else {
real service logic with $q/$http goes here
}
Затем после grunt build
, testState = 'test'
удаляется.
Это, безусловно, относительно шумная архитектура. Как я могу избежать этого? Как я могу заставить Grunt ответить на те же конечные точки, что и мое приложение (некоторые из которых имеют динамические параметры) применяют некоторую логику (если необходимо) и служат json-файлу (возможно, зависящему от параметров пути)?
Это прекрасно работает, но как я могу перезагрузить изменения в Lib/server.js без перезагрузки сервера? – pablomolnar
Это не проблема. Я закончил работу с исправлением, так как изменения в lib/server довольно редко (его небольшая компания). Я бы абсолютно ЛЮБЛЮ, чтобы услышать ваше решение, если вы придумали один –
@pablomolnar Плагин, который я написал (ответ ниже) позволяет изменять макетные ответы, пока сервер dev все еще работает. http://stackoverflow.com/a/25714447/895309 –