자세한 설명은 댓글에 적을 수 있으니 여기서는 자세히 다루지 않겠습니다. 댓글을 아무것도 아닌 것으로 여기지 마세요.
/*노드에서는 require() 함수를 사용하여 모듈을 로드할 수 있습니다.
* require 함수는 파라미터를 사용하며, 파라미터 값은 전체 경로를 포함한 모듈의 파일명일 수도 있고, node에서 제공하는 모듈을 사용할 경우에는 모듈명만 지정하면 됩니다. 요구 기능
* */
//페이지 생성 2.js 코드는 다음과 같습니다
var name="시시 박사";
수출.이름=이름;
//1.js 페이지를 생성합니다. 코드는 다음과 같습니다
var two=require("./2.js");
console.log(two.name);
//출력 결과: 시시 박사
/*
* node에 있는 모든 스크립트 파일은 모듈 파일이므로 1.js도 모듈 파일이고, 해당 파일은 명령줄 창에서 node 명령을 통해 직접 실행되기 때문에 node에 모듈 파일이 정의되어 있습니다. 애플리케이션
* 현재 모듈이 메인 모듈인지 확인하는 방법은 다음과 같습니다
* */
if(모듈===require.main){
console.log("현재 모듈이 메인 모듈입니다.");
}
//출력 결과: 현재 모듈이 메인 모듈
//2.js 코드
var name="시시 박사";
console.log(이름);
수출.이름=이름;
//1.js 코드:
var two=require("./2.js");
var two=require("./2.js");
//두 번 참조되지만 console.log(name)의 출력은 한 번만 실행됩니다.
/*require.resolve(str)
* 노드에서는 이 함수를 사용하여 완전한 절대 경로로 모듈 파일의 파일 이름을 쿼리할 수 있습니다.
* */
var url=require.resolve("./2");
console.log(url);
//출력 결과:E:nodegys2.js
/*require.cache
* 노드에서 이 속성은 로드된 모든 모듈의 캐시 영역을 나타냅니다.
* */
var two=require("./2.js");
var 캐시=require.cache;
console.log(캐시);
/*출력 결과:
* { 'E:\node\gys\1.js':
{ ID: '.',
내보내기: {},
상위: null,
파일 이름: 'E:\node\gys\1.js',
로드됨: 거짓,
어린이: [ [개체] ],
경로:
[ 'E:\노드\gys\node_modules',
'E:\노드\node_modules',
'E:\node_modules' ] },
'E:\node\gys\2.js':
{ ID: 'E:\node\gys\2.js',
수출: { 이름: '시시 박사' },
부모:
{ ID: '.',
내보내기: {},
상위: null,
파일 이름: 'E:\node\gys\1.js',
로드됨: 거짓,
어린이: [개체],
경로: [개체] },
파일 이름: 'E:\node\gys\2.js',
로드됨: 사실,
어린이: [],
경로:
[ 'E:\노드\gys\node_modules',
'E:\노드\node_modules',
'E:\node_modules' ] } }
* */
//2.js 코드
var name="시시 박사";
console.log(이름);
//1.js 코드
//delete 키워드를 사용하여 캐시 영역에 캐시된 모듈 객체를 삭제하면 다음에 모듈을 로드할 때 모듈에 포함된 코드가 다시 실행됩니다.
var two=require("./2.js");
var two1=require("./2.js");
console.log("삭제 전")
require.cache 삭제[require.resolve("./2.js")];
console.log("삭제 후");
var two2=require("./2.js");
/*
* 출력 결과:
* 시시박사
*삭제 전
*삭제 후
* 시시박사
* */
이 글은 제가 직접 이해한 내용을 바탕으로 작성되었으며 누락된 부분이 있으면 정정해 주시기 바랍니다.