IT TIP

node.js에서 내 스크립트가 직접 실행되고 있는지 또는 다른 스크립트에 의해로드되고 있는지 알 수 있습니까?

itqueen 2020. 12. 14. 21:25
반응형

node.js에서 내 스크립트가 직접 실행되고 있는지 또는 다른 스크립트에 의해로드되고 있는지 알 수 있습니까?


방금 node.js를 시작하고 있으며 Python에 대한 경험이 있습니다. Python에서 __name__변수가로 설정 되었는지 여부를 확인할 수 있으며 "__main__"스크립트가 직접 실행되고 있는지 알 수 있습니다. 이 경우 테스트 코드를 실행하거나 다른 방법으로 모듈을 직접 사용할 수 있습니다.

node.js에 비슷한 것이 있습니까?


를 사용 module.parent하여 현재 스크립트가 다른 스크립트에 의해로드되었는지 확인할 수 있습니다 .

예 :

a.js:

if (!module.parent) {
    console.log("I'm parent");
} else {
    console.log("I'm child");
}

b.js:

require('./a')

실행 node a.js하면 다음 이 출력됩니다.

I'm parent

실행 node b.js하면 다음 이 출력됩니다.

I'm child

받아 들여진 대답은 괜찮습니다. 완전성을 위해 공식 문서 에서 이것을 추가하고 있습니다 .

메인 모듈에 액세스

파일이 노드에서 직접 실행하면, require.main그것으로 설정됩니다 module. 즉, 테스트를 통해 파일이 직접 실행되었는지 확인할 수 있습니다.

require.main === module

파일의 경우 "foo.js",이 것 true를 통해 실행하는 경우 node foo.js, 만 false에 의해 실행하는 경우 require('./foo').

속성을 module제공 하기 때문에 filename(일반적으로 __filename)를 확인하여 현재 응용 프로그램의 진입 점을 얻을 수 있습니다 require.main.filename.


옵션 !module.parentrequire.main === module작업 모두 . 자세한 내용 은이 주제에 대한 자세한 블로그 게시물을 참조하십시오 .

참고 URL : https://stackoverflow.com/questions/8864365/can-i-know-in-node-js-if-my-script-is-being-run-directly-or-being-loaded-by-an

반응형