과 의 차이점 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 모듈 확인 알고리즘 사용 , 의 현재 작업 디렉토리부터 shell 시작합니다.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()와 함께 작동합니다 |
---|---|
| 예 |
| No |
mongosh
에서 ES 모듈을 require()
할 수 없습니다. ES 모듈의 기능을 사용하려면 대신 사용할 수 있는 CommonJS 버전이 있는지 확인하세요. 자세한 내용은 다음을 참조하세요.
mongosh API에 액세스
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 스크립트 내에 보관해서는 안 됩니다.