Node 개요

1767 단어
데드는 단일 라인으로 어떤 임무의 후속 조작은 종종 리셋 함수(callback)의 형식으로 정의된다.Node 규약에 따르면 함수에 매개 변수로 콜백 함수가 필요한 경우 콜백 함수가 마지막 매개 변수입니다.또한 리셋 함수 자체의 첫 번째 매개 변수는 이전 단계에서 전송된 오류 대상으로 약정한다.오류가 발생하지 않으면, 리셋 함수의 첫 번째 인자는null로 전송됩니다.

글로벌 객체 및 글로벌 변수

  • 전역 대상: 글로벌,process(node 소속 현재 프로세스),console
  • 전역 함수: setTimeout(),clearTimeout(),setInterval(),clearInterval(),require(로드 모듈용),Buffer(바이너리 데이터 조작용)
  • 글로벌 변수:filename(현재 실행 중인 스크립트 파일 이름),dirname (현재 실행 중인 스크립트가 있는 디렉터리)
  • 위조 전역 변수(모듈 내부):module,module.exports, exports

  • 모듈식 구조


    모듈 - 파일
  • 로드 모듈:require("moudle")
  • 출력 모듈:module.exports
  • 핵심 모듈: http,url,fs,querystring,childprocess,util,path,crypto

  • 예외 처리


    노드는 단일 스레드 실행 환경으로 던져진 이상이 잡히지 않으면 전체 프로세스의 붕괴를 일으킨다.따라서 Node의 비정상 처리는 시스템의 안정적인 운행을 확보하는 데 매우 중요하다.
  • throw문구를 사용하여 오류 대상, 즉 이상을 던집니다.try... catch 구조입니다. 그러나, 이 구조는 비동기적으로 실행되는 코드가 던진 이상을 포착할 수 없습니다.비동기 동작은 다음 이벤트 순환에서 이상을 던지기 때문에,catch 문장은 이미 실행이 끝났습니다.해결 방안: setTimeout을 사용하여 오류 포획을 비동기적인 작업에 넣습니다.
  • 콜백 함수 Node는 오류 객체를 첫 번째 매개변수로 콜백 함수를 가져오는 방법을 사용합니다.이렇게 하면 포획 코드와 오류가 발생한 코드가 같은 시간대에 있지 않은 문제를 피할 수 있다.
  • Event Emitter 인터페이스의 error 이벤트에 error 이벤트에 감청 함수를 배치하지 않으면 전체 응용 프로그램이 붕괴될 수 있습니다.

  • 기타 예외 처리 방법

  • uncaughtException 이벤트는 uncaughtException에 리셋을 설정하면 Node 프로세스가 이상하게 종료되지 않지만 이상이 발생한 상하문은 잃어버려서 이상이 발생한 상세한 정보를 제공할 수 없습니다.그리고 이상으로 인해 노드가 메모리 회수를 정상적으로 하지 못해 메모리 유출이 발생할 수 있다.따라서 uncaughtException이 터치되면 오류 로그를 기록하고 노드 프로세스를 끝내는 것이 좋습니다.
  • unhandled Rejection 이벤트 iojs에는 포획되지 않은 Promise 대상의 Rejected 상태를 감청하는 unhandled Rejection 이벤트가 있습니다.
  •  process.on('unhandledRejection', function (err, p) {
      console.error(err.stack);
    })
    

    좋은 웹페이지 즐겨찾기