programing

Angular의 $httpBackend에서 파일 내용을 반환하는 방법은 무엇입니까?

telecom 2023. 10. 22. 19:24
반응형

Angular의 $httpBackend에서 파일 내용을 반환하는 방법은 무엇입니까?

저는 e2e 테스트 스위트를 각도로 설정하려고 하는데 $httpBackend를 사용하여 캔에 담긴 응답을 반환해야 합니다.예를 들어 파일 내용을 그냥 돌려주면 좋을 것 같습니다.

  $httpBackend.whenPOST('/phones').respond(function(method, url, data) {
    return getContentOf("/somefile");
  });

나는 $http를 사용하려고 노력했습니다. 그 어떤 것은.

  $httpBackend.whenPOST('/phones').respond(function(method, url, data) {
    return $http.get("/responses/phones.js");
  });

하지만 효과가 없었어요, 각도는 $httpBackend에서 약속을 돌려주는 것을 지원하지 않나요?

앱 로드 시 응답이 있는 js 파일을 참조하여 파일의 내용을 변수에 할당하는 것도 방법이지만, 필요에 따라 데이터를 로드할 수 있으면 훨씬 더 좋을 것 같습니다.

$httpBackend는 반환된 약속과 함께 작동하지 않으므로 데이터를 동기화하여 가져올 수 있습니다.$http은 즉시 동기화 옵션이 없으므로, 다음과 같은 방법으로 파일을 호출해야 합니다.

$httpBackend.whenPOST('/phones').respond(function(method, url, data) {
  var request = new XMLHttpRequest();

  request.open('GET', '/responses/phones.js', false);
  request.send(null);

  return [request.status, request.response, {}];
});

제가 해결한 문제는 다음과 같습니다.

$httpBackend.whenPOST("some/url").respond(function(method, url, data) { 
    return $resource("path/to/your/json/file.json").get(); 
});

이것은 분명히 필요합니다.angular-resource모듈이 작동합니다.

$httpBackend.Post가 requestHandler 개체를 반환할 때.

공식 문서에 따르면:

requestHandler(is) 가 있는 물건respond일치된 요청이 처리되는 방법을 제어하는 메소드입니다.

  • 응답 –
    {function([status,] data[, headers, statusText]) | function(function(method, url, data, headers)}
    – 응답 메서드는 반환할 정적 데이터 집합을 사용하거나 응답 상태(숫자), 응답 데이터( 문자열), 응답 헤더(Object) 및 상태( 문자열)의 텍스트를 포함하는 배열을 반환할 수 있는 함수를 사용합니다.

출처: 각진 문서

응답 메서드는 반환할 정적 데이터 집합을 사용하거나 응답 상태(숫자), 응답 데이터( 문자열) 및 응답 헤더(Object)가 포함된 배열을 반환할 수 있는 함수를 사용합니다.

그래서, 당신은 다음과 같은 일을 해야 합니다.

var response = 'content of somefile.js';
// OR var response = { foo : "bar" };
// OR var response = (actually consume content of somefile.js and set to response)

$httpBackend.whenPost('/phones').respond(response); 

언급URL : https://stackoverflow.com/questions/21057477/how-to-return-a-file-content-from-angulars-httpbackend

반응형