require()
모듈이나 .json
파일을 불러옵니다(import). 모듈은 프로젝트 폴더 내 modules
폴더에 위치하며, 사용자가 임의로 추가할 수 있습니다.
전역 모듈은 카카오톡봇 앱이 사용하는 데이터 폴더 내 global_modules
폴더에 위치하며, 마찬가지로 사용자가 임의로 추가할 수 있습니다.
정보
메신저봇R 0.7.40-alpha.03 이상 버전의 경우 별도의 설명을 추가로 확인해야 합니다.
구문
require(path);
매개변수
path String불러올 모듈이나 JSON 파일의 이름 또는 경로. |
반환값
any
- 불러온 모듈이나 JSON 파일의 내용을 포함하는 객체를 반환합니다.
설명
require()
함수는 모듈이나 JSON 파일을 불러오는 데 사용됩니다. 모듈은 프로젝트 폴더 내 modules
폴더에 위치하며, 전역 모듈은 카카오톡봇 앱이 사용하는 데이터 폴더 내 global_modules
폴더에 위치합니다.
두 모듈 모두 사용자가 임의로 .js
파일의 모듈을 추가할 수 있습니다.
path
매개변수에 파일의 이름 또는 모듈의 이름만 전달할 경우 modules
폴더와 global_modules
폴더에서 해당 이름의 파일 또는 모듈을 찾습니다.
작업 중인 스크립트의 프로젝트 폴더 경로는 __dirname
을 사용할 수 있으며, 작업 중인 스크립트 파일의 경로는 __filename
을 사용할 수 있습니다.
주의
__dirname
과__filename
은 메신저봇R 0.7.39a 버전부터 지원됩니다. 그외 버전과 다른 카카오톡봇 앱에서는 지원하지 않습니다.- 두 변수는 모듈 스코프에서 제대로 동작하지 않을 수 있습니다.
GraalJS 기반에서
메신저봇R 0.7.40-alpha.03 이상 버전에서는 더 이상 Rhino 엔진을 사용하지 않고 GraalJS 엔진을 사용합니다.
GraalJS는 Rhino 엔진과 다르게 모듈의 경로를 여러 개 지정할 수 없어 전역 모듈(global_modules
)을 지원하지 않습니다. 또한, 프로젝트 폴더 내 modules
폴더는 node_modules
폴더로 변경됩니다.
주의
ESM(ECMAScript Modules) 방식의 모듈을 사용하기 위해선, 모듈 파일의 확장자를 .mjs
로 변경해야 합니다. 그렇지 않은 파일은 CJS(CommonJS) 방식의 모듈로 간주됩니다.
앱 호환성
0.7.39a 메신저봇R | 4.0 채팅 자동응답 봇 | 0.1.0a StarLight |