CommonJS란 무엇인가요? Nodejs에서 모듈을 사용자 정의하는 방법은 무엇입니까?

藏色散人
풀어 주다: 2022-08-08 14:22:35
앞으로
2127명이 탐색했습니다.

1. CommonJ가 무엇인가요?

JavaScript는 빠르고 효율적인 해석기가 많이 포함된 강력한 객체 지향 언어입니다. 그러나 JavaScript 표준은 브라우저 기반 애플리케이션을 구축하기 위한 API를 정의합니다. 더 넓은 범위의 응용 프로그램을 위해 개발된 표준 라이브러리는 없습니다. CommonJS 사양은 주로 현재 JavaScript의 표준 부족이라는 단점을 보완하기 위해 제안되었습니다. 단순히 작은 스크립트 프로그램 단계에 머물지 않고 Python, Ruby, Java와 유사한 언어에 대한 표준 라이브러리를 제공하는 것이 궁극적인 목표입니다. CommonJS API로 작성된 애플리케이션은 JavaScript를 사용하여 클라이언트 애플리케이션을 개발할 수 있을 뿐만 아니라 다음 애플리케이션도 작성할 수 있습니다.

  • 서버측 JavaScript 애플리케이션. (nodejs)
  • 명령줄 도구.
  • 데스크탑 GUI 애플리케이션.

CommonJS는 모듈화의 표준이고, nodejs는 CommonJS(모듈화)의 구현입니다.

2. Nodejs의 모듈화

Node 애플리케이션은 모듈로 구성되며 CommonJS 모듈 사양을 채택합니다.

2.1 Node에서 모듈은 두 가지 범주로 나뉩니다.

한 가지 유형은 Node에서 제공하는 모듈로, 핵심 모듈이라고 하며, 다른 유형은 사용자가 작성한 모듈로, 파일 모듈입니다.

  • 노드 소스 코드 컴파일 과정에서 핵심 모듈 부분이 바이너리 실행 파일로 컴파일됩니다. Node 프로세스가 시작되면 일부 핵심 모듈이 메모리에 직접 로드되므로 이 부분의 핵심 모듈이 도입되면 파일 위치와 컴파일 및 실행의 두 단계를 생략할 수 있으며 경로 분석에서 우선 순위가 결정됩니다. , 그래서 로딩 속도가 가장 빠릅니다. 예를 들어 HTTP 모듈, URL 모듈, Fs 모듈은 모두 nodejs에 내장된 핵심 모듈이므로 직접 도입하여 사용할 수 있습니다.
  • 파일 모듈은 런타임 시 동적으로 로드되며 완전한 경로 분석, 파일 위치, 컴파일 및 실행 프로세스가 필요합니다. 속도는 핵심 모듈보다 약간 느리지만 많이 사용됩니다. 이러한 모듈은 스스로 정의해야 합니다. 다음으로 nodejs의 사용자 정의 모듈을 살펴보겠습니다.

2.2 CommonJS(Nodejs)의 사용자 정의 모듈 규정:

  • 1. 공용 함수를 별도의 js 파일에 모듈로 추출할 수 있습니다. 기본적으로 이 모듈의 메서드나 속성은 외부에 액세스할 수 없습니다. 외부 세계에서 모듈의 메서드나 속성에 액세스할 수 있게 하려면 내보내기 또는 module.exports를 통해 모듈의 속성이나 메서드를 노출해야 합니다.
  • 2. 이 모듈을 사용해야 하는 파일에서 require를 통해 이 모듈을 소개합니다. 이때 모듈에 노출된 속성과 메서드를 사용할 수 있습니다.

2.3 사용할 모듈 정의:

// 定义一个 tools.js 的模块 //模块定义 var tools = { sayHello: function() { return 'hello NodeJS'; }, add: function(x, y) { return x + y; } }; // 模块接口的暴露 // module.exports = tools; exports.sayHello = tools.sayHello; exports.add = tools.add; 1 2 3 4 var http = require('http'); // 引入自定义的 tools.js 模块 var tools= require('./tools'); tools.sayHello(); //使用模块
로그인 후 복사

3. npm init는 package.json

npm init --yes
로그인 후 복사

을 생성합니다. 【권장:node.js 비디오 튜토리얼

위 내용은 CommonJS란 무엇인가요? Nodejs에서 모듈을 사용자 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:jb51.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!