문서 메뉴

문서 홈보기 & 데이터 분석MongoDB Shell

require()load()의 차이점

이 페이지의 내용

  • mongosh의 스크립트 유형
  • require() 및 load()의 가용성
  • require() 및 load()의 파일 경로
  • require() 패키징 고려 사항
  • mongosh API에 액세스

require()load() 메서드는 기능 추가를 위해 스크립트에 파일과 모듈을 포함합니다. 그러나 require()load() 는 동작과 가용성이 다릅니다.

mongosh 에서 다음 유형의 스크립트를 사용할 수 있습니다.

  • mongosh 스크립트는 다음 중 하나일 수 있습니다.

    • REPL에 직접 입력된 코드입니다.

    • mongoshrc.js 파일입니다.

    • load() 메서드로 로드된 코드입니다.

  • Node.js 스크립트: npm 패키지를 포함하여 require() 로 로드된 모든 스크립트입니다. 이러한 스크립트는 항상 파일입니다.

require()load() 메서드는 사용 중인 스크립트 유형에 따라 가용성이 다릅니다.

  • mongosh 스크립트에서는 require()load() 을(를) 모두 사용할 수 있습니다.

  • Node.js 스크립트에서는 require() 만 사용할 수 있습니다.

스크립트 유형에 따라 require() 또는 load() 파일 경로를 지정하는 방법이 결정됩니다.

  • mongosh 스크립트에서:

    • require() 표준 Node.js 모듈 확인 알고리즘 사용 , 셸의 현재 작업 디렉토리부터 시작합니다.

    • load() 둘 중 하나를 사용합니다.

      • 절대 경로 또는

      • 상대 경로입니다. 상대 경로를 사용하는 경우, 경로는 항상 shell의 현재 작업 디렉토리를 기준으로 한 경로로 해석됩니다.

  • Node.js 스크립트에서require() 은(는) 표준 Node.js 모듈 확인 알고리즘을 require() 사용합니다. 가 호출된 파일부터 시작합니다.

shell의 현재 작업 디렉토리를 반환하려면 스크립트에서 pwd() 메서드를 실행합니다.

셸의 작업 디렉토리를 변경하려면 스크립트에서 cd() 메서드를 사용합니다.

npm 패키지 또는 별도의 mongosh 스크립트와 같은 mongosh 스크립트 파일에서 외부 코드를 로드할 수 있습니다.

  • 다른 mongosh 스크립트에서 mongosh 스크립트를 로드하려면 __dirname 환경 변수를 사용합니다. __dirname 환경 변수는 실행 중인 파일이 포함된 디렉토리의 절대 경로를 반환합니다.

    예제

    다른 mongosh 스크립트에서 test-suite.js 이라는 이름의 mongosh 스크립트를 로드하려면 스크립트에 다음 줄을 추가하세요.

    load(__dirname + '/test-suite.js')

    _dirname 변수를 사용하여 절대 경로를 지정하면 로드하는 별도의 스크립트가 mongosh 이(가) 시작된 위치와 같은 외부 요인의 영향을 받지 않습니다.

  • mongosh 스크립트에서 Node.js 스크립트를 로드하려면 require() 메서드를 사용합니다.

    예제

    date-fns 를 로드하려면 스크립트에서 모듈을 mongosh 제거하고 test-suite2.js 스크립트에 다음 줄을 추가합니다.

    const localRequire = require('date-fns').createRequire(__filename);
    const fileExports = localRequire('./test-suite2.js'); }

Node.js 모듈에는 두 가지 패키징 표준이 있습니다.

패키지 표준
require()와 함께 작동합니다
CommonJS (CJS)
ECMAScript Module (ES 모듈)
아니요

mongosh에서 ES 모듈을 require() 할 수 없습니다. ES 모듈의 기능을 사용하려면 대신 사용할 수 있는 CommonJS 버전이 있는지 확인하세요. 자세한 내용은 다음을 참조하세요.

  • mongosh 스크립트는 mongosh API를 사용할 수 있습니다.

  • Node.js 스크립트에 mongosh API에 대한 액세스 권한이 없습니다.

예를 들어, db 글로벌 변수(현재 데이터베이스를 표시하는 데 사용됨)는 mongosh 스크립트 내에서 사용할 수 있습니다. Node.js 스크립트 내에서는 사용할 수 없습니다.

중요

mongosh 스크립트와 Node.js 스크립트는 서로 다른 컨텍스트 에서 실행됩니다. . 각 유형의 스크립트에서 동일한 명령이 실행되는 경우 서로 다른 데이터 유형을 반환하는 등 서로 다른 동작을 보일 수 있습니다. 따라서 mongosh Node.js 스크립트 내에서 코드를 실행하면 예기치 않은 결과가 발생할 수 있습니다.

일반적으로 mongosh 전용 코드를 Node.js 스크립트 내에 보관해서는 안 됩니다.

← 스크립트에 외부 파일 및 모듈 넣기