Docs Menu
Docs Home
/
mongosh
/

과 의 차이점 require() load()

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 모듈 확인 알고리즘 사용 , 의 현재 작업 디렉토리부터 shell 시작합니다.

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

      • 절대 경로 또는

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

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

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 Module)

No

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

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

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

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

중요

mongosh 스크립트와 Node.js 스크립트는 서로 다른 컨텍스트 에서 실행 됩니다. . 각 유형의 스크립트 에서 동일한 명령이 실행 때 서로 다른 데이터 유형을 반환하는 등 서로 다른 동작을 보일 수 있습니다. Therefore, you may observe unexpected results if you run mongosh code inside of a Node.js script.

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

돌아가기

파일 및 모듈 포함

이 페이지의 내용

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