Node.js
자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경을 주로 서버 사이드 어플리케이션 개발에 사용되는 소프트웨어 플랫폼
npm
node.js에서 사용할 수 있는 모듈들을 패키지화하여 모아둔 저장소 역할 겸 설치 및 관리를 위한 CLI를 제공
#지역 설치
$npm install <package>
#전역 설치
$npm install -g <package>
package.json과 의존성 관리
npm은 package.json을 통해 프로젝트 정보와 패키지 의존성을 관리
package.json에서 가장 중요한 항목은 name과 version
exports
모듈 안에 선언한 모든 것들은 기본적으로 해당 모듈 내부에서만 참조 가능
- 이를 외부에 공개하여 다른 모듈에서 사용할 수 있도록 해주는 것이 export 객체
- 전역함수 require()로 추출함
module.exports
exports객체는 프로퍼티.메소드를 여러개 정의 할 수 있음 반면
module.exports에는 하나의 값(원시 타입,함수,객체)을 하당 가능
require()로 할당 받은 변수는 module.exports에 할당한 값 자체
구분 | 모듈 정의 방식 | require함수의 호출 결과 |
exports | exports객체에는 값을 할당할 수 없고 공개할 대상을 exports 객체에 프로퍼티 또는 메소드로 추가 | exports객체에 추가한 프로퍼티와 메소드가 담긴 객체가 전달 |
module.exports | module.exports 객체에 하나의 값(원시 타입,함수,객체)만을 할당 | module.exports객체에 할당한 값이 전 |