데드는 단일 라인으로 어떤 임무의 후속 조작은 종종 리셋 함수(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);
})
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: