NightmareJS의 http 응답 코드가 정의되지 않았습니다.

TheTechy

안녕하세요 & 2017에 오신 것을 환영합니다 :)

나는 PhantomJS 대신 NightmareJS를 시도하고 있으며 지금까지 너무 좋았습니다 (PhantomJS는 나를 위해 매우 느리게 수행되므로 변경됩니다)

내 문제는 http 응답 헤더를 반환하려고 할 때 값이 정의되지 않았다는 것입니다.

나는 문서와 많은 예제를 살펴 보았고 모두 내 것과 매우 유사한 코드를 보여줍니다.

나는 그들이 실제로 열리는 것을 알 수 있도록 show를 true로 설정하여 내가 여는 사이트를 확인하고 있습니다.

도움을 주시면 감사하겠습니다.

내 현재 코드는 다음과 같습니다.

var Nightmare = require('nightmare');

var nightmare = Nightmare({
    show: false,
    switches: {
        'ignore-certificate-errors': true
    },
    webPreferences:{
        images: true
    },
    //waitTimeout: 1000,
    loadTimeout: 30000 //** If we cant reach the page after nnnn millseconds, timeout
});

//** Start nightmare
var ms = Date.now(); //** Set a timer
nightmare
.cookies.clearAll()
.goto(url)
.screenshot('abc123.png')
.end()
.then(function(httpResponse){
    console.log(httpResponse.code); //** <<<< Here SHOULD be the http response code
    console.log(Date.now() - ms);
    callback(siteObject); //
})
.catch(function (error) {
    console.error('Search failed:', error);
});
다니엘

라인 때문에 문제가 발생합니다

.screenshot('abc123.png')

제거하면 httpResponse.code상태 코드가 반환됩니다.

버그 일 수 있다고 생각 합니다. 개발자 에게 문제제기 했으며 답변을 보내 드리겠습니다.

최신 정보

nightmarejs의 가장 큰 기여자 인 rosshinkley 로부터 답장을 받았습니다 .

httpResponse전달 된 매개 변수 .then()가 체인에서 실행 된 마지막 작업 (예외 제외 .end()) 에서 온 것이기 때문에 정의되지 않았습니다 -귀하의 경우 .screenshot()(아무것도 반환하지 않음). HTTP 응답이 필요한 경우 다른 .then()것과 체인 을 분리하여 논리를 수행 할 수 있습니다 .

원래 질문은 다음과 같이 수정할 수 있습니다 (다시 rosshinkley에 대한 크레딧 ).

nightmare.goto(url)
.then(function(httpResponse) {
  if(httpResponse.code == 200) {
    return nightmare.screenshot('abc123.png');
  } 
  else {
    //error condition?
    throw new Error('http response was not ok');
  }
})
.then(function(){ return nightmare.end(); })

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

HTTP 302가 응답 코드를 찾았습니다. 의미는 무엇입니까?

분류에서Dev

angularjs : $ http가 서비스에 정의되지 않았습니다.

분류에서Dev

반응 : '지도'가 정의되지 않았습니다.

분류에서Dev

Jquery 함수 응답이 정의되지 않았습니다.

분류에서Dev

AJAX 응답이 정의되지 않았습니다.

분류에서Dev

AngularJS Uncaught ReferenceError : 응답이 정의되지 않았습니다.

분류에서Dev

ReactJS가 정의되지 않은 응답을 얻습니다.

분류에서Dev

반응 분해 변수가 정의되지 않았습니다.

분류에서Dev

일반 빌드 요청 메서드 응답이 정의되지 않았습니다.

분류에서Dev

REST API의 응답에 HTTP 결과 코드가 포함되어야합니까?

분류에서Dev

Ajax 핸들러 콜백 함수 : 응답 객체가 정의되지 않았습니다.

분류에서Dev

응답시 개체 참조가 개체 오류의 인스턴스로 설정되지 않았습니다.

분류에서Dev

응답 데이터가 정의되었지만 data.value가 정의되지 않았습니까?

분류에서Dev

코드에서 '변수'가 정의되지 않았습니다.

분류에서Dev

Nodejs-POST 요청의 응답이 정의되지 않았습니다.

분류에서Dev

json 응답의 modelErrors 속성이 정의되지 않았습니다.

분류에서Dev

Angular이 HTTP 요청 응답 배열의 길이가 정의되지 않은 이유는 무엇입니까?

분류에서Dev

HTTP 응답 코드 : URL의 경우 400?

분류에서Dev

Google App Script 오류 404 : 응답이 정의되지 않았습니다.

분류에서Dev

Axios 및 Express를 사용하여 응답이 정의되지 않았습니다.

분류에서Dev

Express.js 응답이 정의되지 않았습니다. 오류

분류에서Dev

Express의 응답이 정의되지 않았으며 보류 중입니다 (React 프런트 엔드).

분류에서Dev

ReferenceError : 상태가 정의되지 않았습니다-네이티브 반응

분류에서Dev

응답이 다른 웹 서비스. 응답 개체가 정의되지 않음

분류에서Dev

TypeError : axios HTTP 드라이버를 사용할 때 this.Vue.axios가 정의되지 않았습니다.

분류에서Dev

식별자 "DDRB"가 정의되지 않았습니다.-VS 코드 / Visual Studio

분류에서Dev

Android : Button의 OnClick 메서드가 응답하지 않습니다.

분류에서Dev

Azure App Services에 Express 앱 배포가 포트 : 8080에서 HTTP ping에 응답하지 않았습니다.

분류에서Dev

노드 : ReferenceError : require가 정의되지 않았습니다.

Related 관련 기사

  1. 1

    HTTP 302가 응답 코드를 찾았습니다. 의미는 무엇입니까?

  2. 2

    angularjs : $ http가 서비스에 정의되지 않았습니다.

  3. 3

    반응 : '지도'가 정의되지 않았습니다.

  4. 4

    Jquery 함수 응답이 정의되지 않았습니다.

  5. 5

    AJAX 응답이 정의되지 않았습니다.

  6. 6

    AngularJS Uncaught ReferenceError : 응답이 정의되지 않았습니다.

  7. 7

    ReactJS가 정의되지 않은 응답을 얻습니다.

  8. 8

    반응 분해 변수가 정의되지 않았습니다.

  9. 9

    일반 빌드 요청 메서드 응답이 정의되지 않았습니다.

  10. 10

    REST API의 응답에 HTTP 결과 코드가 포함되어야합니까?

  11. 11

    Ajax 핸들러 콜백 함수 : 응답 객체가 정의되지 않았습니다.

  12. 12

    응답시 개체 참조가 개체 오류의 인스턴스로 설정되지 않았습니다.

  13. 13

    응답 데이터가 정의되었지만 data.value가 정의되지 않았습니까?

  14. 14

    코드에서 '변수'가 정의되지 않았습니다.

  15. 15

    Nodejs-POST 요청의 응답이 정의되지 않았습니다.

  16. 16

    json 응답의 modelErrors 속성이 정의되지 않았습니다.

  17. 17

    Angular이 HTTP 요청 응답 배열의 길이가 정의되지 않은 이유는 무엇입니까?

  18. 18

    HTTP 응답 코드 : URL의 경우 400?

  19. 19

    Google App Script 오류 404 : 응답이 정의되지 않았습니다.

  20. 20

    Axios 및 Express를 사용하여 응답이 정의되지 않았습니다.

  21. 21

    Express.js 응답이 정의되지 않았습니다. 오류

  22. 22

    Express의 응답이 정의되지 않았으며 보류 중입니다 (React 프런트 엔드).

  23. 23

    ReferenceError : 상태가 정의되지 않았습니다-네이티브 반응

  24. 24

    응답이 다른 웹 서비스. 응답 개체가 정의되지 않음

  25. 25

    TypeError : axios HTTP 드라이버를 사용할 때 this.Vue.axios가 정의되지 않았습니다.

  26. 26

    식별자 "DDRB"가 정의되지 않았습니다.-VS 코드 / Visual Studio

  27. 27

    Android : Button의 OnClick 메서드가 응답하지 않습니다.

  28. 28

    Azure App Services에 Express 앱 배포가 포트 : 8080에서 HTTP ping에 응답하지 않았습니다.

  29. 29

    노드 : ReferenceError : require가 정의되지 않았습니다.

뜨겁다태그

보관