문서 홈 → 보기 & 데이터 분석 → MongoDB Shell
require()
과 load()
의 차이점
이 페이지의 내용
require()
및 load()
메서드는 기능 추가를 위해 스크립트에 파일과 모듈을 포함합니다. 그러나 require()
및 load()
는 동작과 가용성이 다릅니다.
mongosh의 스크립트 유형
mongosh
에서 다음 유형의 스크립트를 사용할 수 있습니다.
mongosh
스크립트는 다음 중 하나일 수 있습니다.REPL에 직접 입력된 코드입니다.
mongoshrc.js 파일입니다.
load() 메서드로 로드된 코드입니다.
Node.js 스크립트: npm 패키지를 포함하여
require()
로 로드된 모든 스크립트입니다. 이러한 스크립트는 항상 파일입니다.
require() 및 load()의 가용성
require()
및 load()
메서드는 사용 중인 스크립트 유형에 따라 가용성이 다릅니다.
mongosh
스크립트에서는require()
및load()
을(를) 모두 사용할 수 있습니다.Node.js 스크립트에서는
require()
만 사용할 수 있습니다.
require() 및 load()의 파일 경로
스크립트 유형에 따라 require()
또는 load()
파일 경로를 지정하는 방법이 결정됩니다.
mongosh
스크립트에서:require()
표준 Node.js 모듈 확인 알고리즘 사용 , 셸의 현재 작업 디렉토리부터 시작합니다.load()
둘 중 하나를 사용합니다.절대 경로 또는
상대 경로입니다. 상대 경로를 사용하는 경우, 경로는 항상 shell의 현재 작업 디렉토리를 기준으로 한 경로로 해석됩니다.
Node.js 스크립트에서
require()
은(는) 표준 Node.js 모듈 확인 알고리즘을require()
사용합니다. 가 호출된 파일부터 시작합니다.
mongosh 스크립트에서 외부 코드 로드
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'); }
require() 패키징 고려 사항
Node.js 모듈에는 두 가지 패키징 표준이 있습니다.
패키지 표준 | require()와 함께 작동합니다 |
---|---|
CommonJS (CJS) | 예 |
ECMAScript Module (ES 모듈) | 아니요 |
mongosh
에서 ES 모듈을 require()
할 수 없습니다. ES 모듈의 기능을 사용하려면 대신 사용할 수 있는 CommonJS 버전이 있는지 확인하세요. 자세한 내용은 다음을 참조하세요.
mongosh API에 액세스
mongosh
스크립트는mongosh
API를 사용할 수 있습니다.Node.js 스크립트에
mongosh
API에 대한 액세스 권한이 없습니다.
예를 들어, db
글로벌 변수(현재 데이터베이스를 표시하는 데 사용됨)는 mongosh
스크립트 내에서 사용할 수 있습니다. Node.js 스크립트 내에서는 사용할 수 없습니다.
중요
mongosh
스크립트와 Node.js 스크립트는 서로 다른 컨텍스트 에서 실행됩니다. . 각 유형의 스크립트에서 동일한 명령이 실행되는 경우 서로 다른 데이터 유형을 반환하는 등 서로 다른 동작을 보일 수 있습니다. 따라서 mongosh
Node.js 스크립트 내에서 코드를 실행하면 예기치 않은 결과가 발생할 수 있습니다.
일반적으로 mongosh 전용 코드를 Node.js 스크립트 내에 보관해서는 안 됩니다.