node -- 모듈 화

4105 단어 node
모듈 화
모듈 이란 무엇 입 니까?
  • . js 파일 마다 하나의 모듈
  • npm 에서 다운로드 한 가방 (여러 파일 로 구 성 된 특정 기능 을 실현 하 는 가방 일 수 있 음) 도 모듈
  • 입 니 다.
  • 모든 파일 이나 디 렉 터 리 가 Node. js require() 함수 로 불 러 올 수 있 는 것 은 모듈
  • 입 니 다.
  • 각 모듈 은 하나의 독립 된 역할 구역 으로 모듈 과 모듈 간 에 서로 오염 되 지 않 습 니 다
  • - 저 희 는 프로 그래 밍 을 통 해 특정한 모듈 이 대외 적 으로 노출 할 내용 을 지정 할 수 있 습 니 다 (사실은 require 의 반환 값 을 지정 하고 require 의 반환 값 을 통 해 지정 한 내용 을 대외 적 으로 노출 하 는 것 입 니 다).이 대외 노출 내용 의 과정 을 '도 출' 이 라 고도 부른다 module.exports가방 이 뭐 예요?
  • package. json 을 통 해 설명 한 파일 이나 디 렉 터 리 (특정한 기능 을 실현 하 는 파일 이나 여러 파일 로 이해 할 수 있 으 며 package. json 을 통 해 구성 할 수 있 습 니 다)
  • 가방 이 Node. js require() 를 통 해 불 러 올 수 있 는 것 이 아니 라 모듈 이 라 고 부 르 지 않 습 니 다.예 를 들 어 일부 가방 에 시작 파일 (package. json 의 main 필드) 이 설정 되 어 있 지 않 으 면 모듈 이 아 닙 니 다.

  • 참조 링크:https://docs.npmjs.com/how-npm-works/packages
    Node. js 에서 모델 은 주로 핵심 모듈 과 파일 모듈 로 나 뉜 다.
    핵심 모듈
  • http、fs、path、url、net、os、readline、……
  • 핵심 모듈 은 Node. js 자체 소스 코드 를 컴 파일 할 때 바 이 너 리 파일 로 컴 파일 되 었 습 니 다
  • 일부 핵심 모듈 은 Node. js 프로 세 스 가 시 작 될 때 캐 시 에 기본적으로 불 러 왔 습 니 다
  • 파일 모듈
  • 파일 모듈 은. js 모듈,. node 모듈, *. json 모듈 일 수 있 습 니 다. 이것들 은 모두 파일 모듈
  • 입 니 다.
  • npm 에서 다운로드 한 제3자 모듈 이 든 우리 가 작성 한 모듈 이 든 모두 파일 모듈
  • 모듈 화의 장점
  • 모듈 과 모듈 사이 에 변수 오염 이 발생 하지 않 습 니 다. 한 모듈 은 하나의 역할 영역 입 니 다.
  • 모듈 화 개발 효율 이 높 고 유지 가능성 이 좋다
  • 모듈 화 는 직책 분 리 를 할 수 있 고 각 모듈 은 하나의 독립 된 기능
  • 을 실현 할 수 있다.
    모듈 로드
    핵심 모듈 이 든 파일 모듈 로드 든 모두 require(' ') 를 사용 합 니 다.
    핵심 모듈 의 로드 속도 가 가장 빠르다.
    핵심 모듈 이 든 파일 모듈 이 든 한 번 불 러 오 면 캐 시 되 고 두 번 째 로 불 러 올 때 캐 시 에서 직접 읽 으 면 됩 니 다.따라서 모듈 에 있 는 코드 는 처음 불 러 올 때 한 번 만 실행 되 므 로 주의해 야 합 니 다.
    핵심 모듈 은 '모듈 이름' 으로 만 불 러 올 수 있 습 니 다. 예 를 들 어 require(' ')파일 모듈 은 require 가 지정 한 경 로 를 통 해 불 러 올 수 있 습 니 다. (경 로 는 파일 경로 나 디 렉 터 리 일 수 있 습 니 다)
  • require('./a/b.js') 상대 경 로 를 지정 하여 모듈 을 불 러 옵 니 다
  • require('/a/b.js') 또는 require('c:\a\b.js') 절대 경 로 를 지정 하여 불 러 오기
  • 주의: require('') 모듈 을 불 러 올 때 상대 경 로 는 현재 모듈 에 비해 node 명령 이 실 행 된 경로 에 영향 을 받 지 않 습 니 다.

  • 경로 로 파일 모듈 을 불 러 올 때 파일 의 접 두 사 는 있어 도 되 고 없어 도 됩 니 다.
  • 접미사 이름 을 생략 하면 Node. js 는 기본적으로. js,. node,. json 순서 로 불 러 옵 니 다.
  • 제안: 항상 접 두 사 를 붙 입 니 다.

  • npm 에서 다운로드 한 제3자 모듈 로드
    require ('모듈 이름') 로 불 러 옵 니 다.
    제3자 모듈 이름 은 절대 핵심 모듈 과 이름 을 바 꿀 수 없습니다. 그렇지 않 으 면 영원히 불 러 오 는 것 은 모두 핵심 모듈 입 니 다.
    require ('모듈 이름') 비 핵심 모듈 을 불 러 오 는 과정
  • console.log(module.paths); 를 통 해 보기
  • require 모듈 을 불 러 올 때 두 가지 일 을 했 습 니 다.
  • 모듈 의 코드 를 실 행 했 습 니 다
  • 모듈 에서 대외 적 으로 노출 된 내용 (대상, 함수 등 일 수 있 음)
  • 을 되 돌려 주 었 다.
    module. exports 와 exports
    각 모듈 에서 module 은 현재 모듈 대상 을 표시 하고 그 안에 현재 모듈 대상 의 각종 정 보 를 저장 합 니 다.
    module. exports 는 사실 require () 가 모듈 을 불 러 올 때의 반환 값 입 니 다.
    exports 는 module. exports 의 참조 입 니 다.
    exports = module.exports;

    특히 주의: 최종 적 으로 require 에 노출 된 반환 값 은 exports 가 아 닌 module. exports 입 니 다.
    "` javascript / / / 동작 을 설명 하려 면 require () 의 이 가상 구현 을 상상 해 보 세 요. require () 는 실제로 require () 에 의 해 수행 되 는 것 과 매우 유사 합 니 다.
    function require(…) { var module = { exports: {} };
    ((module, exports) => { // Your module code here. In this example, define a function. function some_func() {}; exports = some_func; // At this point, exports is no longer a shortcut to module.exports, and // this module will still export an empty default object. module.exports = some_func; // At this point, the module will now export some_func, instead of the // default object. })(module, module.exports);
    return module.exports; } “`
    Node. js 원본 을 다운로드 하고 열 어 보 세 요.
    JavaScript 의 엄격 한 모드 - "use strict"; 또는 'use strict';
  • 참조 링크:
  • http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html
  • https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Strict_mode

  • 좋은 웹페이지 즐겨찾기