노드 모듈 메커니즘 및 비동기 처리에 대한 자세한 설명_node.js

WBOY
풀어 주다: 2016-05-16 15:10:43
원래의
2038명이 탐색했습니다.

1. 모듈 메커니즘

commonJS 모듈 메커니즘의 목적은 js를 구축하여 웹 서버, 데스크톱 프로그램, 브라우저 등에서 생태계를 형성하는 것입니다. Node js는 require를 사용하여 다른 파일을 도입하는 이 사양의 구현입니다. 마찬가지로 npm도 commonJS에서 정의한 패키지 사양을 따르므로 완전한 생태계를 형성합니다.

모듈 정의 및 내보내기

예를 들어, Circle.js라는 이름의 다음 파일이 있습니다

exports.getName = function(name) {
  return name
}
로그인 후 복사

모듈 로딩

var circle = require('/circle.js')
console.log(circle.getName('WPY'))
로그인 후 복사

모듈 로딩 전략

노드 모듈은 크게 두 가지 범주로 나눌 수 있습니다.

네이티브 모듈 및 커스텀 모듈은 HTTP 및 fs 모듈과 같이 노드 자체에 의해 정의되는 모듈입니다.
우리가 직접 정의한 패키지 모듈과 파일을 포함하여 사용자 정의 모듈 범주도 있습니다. 네이티브 모듈이든 커스텀 모듈이든 처음 로드된 후 노드별로 캐시되므로 두 번째 요청에는 오버헤드가 없습니다.

기본 모듈 로딩:

파일 이름을 구문 분석한 후 require() 메소드는 먼저 모듈 캐시에서 검색한 다음 노드의 기본 모듈에서 검색합니다
파일에서 로드
module.path 로드된 각 파일 모듈에 대해 모듈 객체가 생성될 때 paths 속성이 있습니다. 해당 경로는 가져온 모듈의 경로를 가리킵니다.
절대 경로 모듈을 요청할 때 가장 빠른 로딩 속도를 위해 node_module을 통과하지 않습니다.

비동기 프로그래밍

중급 기능
고급 함수는 함수를 매개변수나 반환 값으로 사용하는 함수입니다.

function foo(X) {
  return function() {
    return x
  }
}
로그인 후 복사

NODE가 가져온 가장 큰 특징은 기회주의적 이벤트 기반 Non-Blocking IO입니다.

비동기 프로그래밍 솔루션

1. 이벤트 게시/구독 모델

이벤트 리스너 모드는 비동기 프로그래밍에서 널리 사용됩니다. 이는 게시/구독 모드라고도 알려진 시간 제한 콜백 함수입니다.

//订阅

emitter.on("event1", function(message){
  console.log(message)
})
//发布

emitter.emit("event1", "I am message")

로그인 후 복사

2.약속모드

Promise 객체에는 미완료 상태, 완료 상태, 실패 상태의 세 가지 상태가 있습니다.
Promise 객체에는 then 메소드가 있어야 합니다. then 메소드에는 다음 요구 사항이 있습니다

1. 완료 상태 및 오류 상태에 대한 콜백 방법을 허용합니다.
2. 기능만 허용되며 다른 개체는 무시됩니다
3. 체인 콜을 구현하기 위해 Promise 객체를 계속 반환합니다

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!