node.js를 사용하기 위한 전반적인 내용을 다룬다.
최종수정일 : 2023.06.05
Node.js를 사용하기 위한 환경설정, 개발 시 일반적으로 사용하는 패키지들에 대하여 다룬다.
npm install [option1] packageName
npm search packageName
npm remove packageName
npm pack
npm view packageName
npm publish
npm unpublish
npm owner
install [option1]
-D : 개발 환경에서만 사용할 모듈을 설치, devDependencies에 설치되어 배포에 포함되지 않는다.
-g : 전역 모듈로 설치하여 모든 프로젝트에서 해당 모듈을 사용할 수 있다. 로컬 컴퓨터의 node_modules/ 파일에 패키지가 설치되며, 각 프로젝트의 package.json에는 기록되지 않는다.
-O : package.json의 'optionalDependencies'에 기록된다.
--force : 복사본이 있는 경우에도 강제로 설치한다.
--save : package.json에 설치한 모듈을 'dependencies'에 기록한다.
--save-dev : package.json에 설치한 모듈을 'devDependencies'에 기록한다.
search
원격 저장소 내 모듈 패키지 검색
remove
모듈 제거
pack
package.json 파일에 정의된 모듈을 .tgz 파일로 패키징
view
모듈 상세 정보 표시
publish / unpublish
package.json에 정의된 모듈을 레지스트리에 배포 / 배포취소
owner
저장소 내 패키지 사용자 정보를 추가하거나 삭제, 목록 표시
nodemon
npm install -D nodemon
npx nodemon fileName
nodemon이 속해있는 디렉토리 및 하위 디렉터리의 파일이 변경될 경우 자동으로 서버를 재시작한다.
forever
npm install -D forever
npm install -D pm2@latest
node.js가 실행중에 오류 발생 시 종료되었을 때 서버를 재실행한다.
모듈은 패키지 하위의 기능단위로 보통 하나의 파일에 작성되어 있다. 다른 파일에서 해당 파일이 구현한 기능을 재사용할 수 있도록 작성되어있다.
종류 | 메서드 | 기능 |
---|---|---|
'global' : 전역 객체(Global Variable) | exports | 모듈을 내보낼 때 사용 |
require | 모듈을 불러들일 때 사용 | |
module | node.js 모듈을 다룰 때 사용 | |
__filename | 현재 경로를 포함한 파일 이름 | |
__dirname | 현재 실행중인 파일의 경로 | |
'process' : 프로세스 객체(Process Object) | argv | 실행 파라미터 출력 |
execPath | 실행 파일 경로 | |
cwd | 현재 어플리케이션 경로 | |
version | node 버전 | |
memoryUsage | 현재 서버의 메모리 상태 | |
env | 여러 환경 설정 정보 확인 | |
'os' : 운영체제 모듈(OS Module) | type / platform | 운영체재를 확인 |
arch | 서버의 아키텍처를 구분 | |
networkInterface | 서버의 지역 IP를 확인 | |
'fs' : 파일시스템 모듈 | readFile | 파일을 읽음 |
exists | 파일을 확인 | |
writeFile | 파일을 씀 | |
'util' : 유틸 모듈(Utility Module) | format | 파라미터로 입력한 문자열을 조합 |
'url' : URI 모듈(URI Module) | parse | url을 객체화 |
format | url을 직렬화 |
종류 | 메서드 | 설명 |
---|---|---|
req | body | POST 방식으로 들어오는 요청 정보 파라미터를 가져온다 |
query | GET 방식으로 들어오는 요청 쿼리 스트링 파라미터를 가져온다 | |
params | 개발자가 붙인 라우터 파라미터 정보를 가져온다 | |
headers | HTTP 헤더 정보를 가져온다 | |
route | 현재 라우트에 대한 정보를 가져온다 | |
cookies | 클라이언트가 전달한 쿠키 값을 가져온다 | |
accepts | 인자에 타입을 넣고 클라이언트가 해당 타입을 받을 수 있는지 확인한다 | |
ip | 클라이언트의 ip 주소값을 가져온다 | |
path | 클라이언트가 요청한 경로를 가져온다 | |
host | 요청 시 호스트 이름을 반환한다 | |
xhr Ajax | 요청 시 true를 반환한다 | |
protocol | 현재 요청의 프로토콜(http, https 등)을 반환한다 | |
secure | 현재 요청이 보안된 요청이면 true를 반환한다 | |
url | url 경로와 쿼리 스트링을 반환한다 | |
res | send | 클라이언트에게 응답을 보낸다 |
sendFile | 인자로 넣은 경로의 파일을 클라이언트에 전송한다 | |
json | 클라이언트에게 json 형태의 응답을 보낸다 | |
render | 템플릿 엔진을 사용하여 뷰를 렌더링한다 | |
locals | 뷰를 렌더링하는 기본 문맥을 포함한다 | |
end | 인자로 넣은 응답을 마지막으로 보내고 응답을 종료한다 | |
status | HTTP 응답 토드를 설정한다 | |
set | 응답 헤더를 설정한다 | |
cookie | 클라이언트에 저장될 쿠키를 설정한다 | |
redirect | 인자로 넣은 URL으로 우회한다 | |
type | 헤더의 Content-Type을 설정한다 |