서버
인터넷에 연결되어 클라이언트의 접속 요청에 응답하는 컴퓨터
Express.js
Node.js의 웹 프레임 워크
서버를 만들 수 있게해줌
오래되었고 안정적임
- open connection
- listen connection
- handle some files
- send some HTML
- sava some DATA
- get DATA from Form
등의 일을 반복적으로 함.
패키지 적용 방법
- 웹사이트에서 다운, 적용
- 업데이트를 수동으로 해줘야한다.
- 프로젝트 upload시 패키지들도 같이 올려줘야함.
- NPM ( Node Package Manager ) 을 이용한다.
npm을 이용하면 npmjs 에 등록된 node.js 관련 패키지들을 이용할 수 있다.
npm으로 다운받기
npm -v
cmd 창에서 npm을 확인한다. node.js와 같이 설치되기 때문에 보통 설치되어 있다.
npm init
프로젝트 디렉터리로 이동해서 프로젝트에 npm을 적용하기 위해 명령어를 입력한다.
package name: (package name)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
몇 가지 물어보는데 그냥 충실히 대답해주면 된다.
{
"name" : 해당 모듈의 이름을 정의한다. (이름에 'node' 나 'js' 가 들어가면 안된다.)
"version" : 해당 모듈의 버전을 정의한다.
"description" : 해당 모듈의 추가적인 설명을 정의한다.
"main" : node에서 해당 package.json 을 탐색할 때 기준이 되는 파일 이름을 정한다.
기본적으로 index 로 설정이 되며, 생략이 가능한 부분이지만 추후 프로젝트가 복잡해진다면
이 항목을 정의 할 필요가 있다.
"scripts" : package.json 이 있는 폴더에서 추가로 실행 할 스크립트 명령어를 정의한다.
노드 명령이나 쉘 스크립트를 적어주면 된다. start, test, build 등을 정의한다.
"author" : 해당 모듈의 제작자를 정의한다.
"liecnse" : 해당 모듈의 라이센스를 정의한다.
"dependencies" : 일반적으로 package.json 에 가장 많은 정보가 입력되는 곳이며 여기서 모듈의 의존성을
정의 한다. 해당 모듈이름과 버전을 키 : 값 의형식으로 정의 되어있다.
"devDependencies" : 해당 모듈의 실행에 필요한 또는 개발에 필요한 모듈의 의존성을 입력하는 곳 이다.
}
그럼 이러한 package.json 파일이 생성된다. 이 파일을 기반으로 npm이 관리를 해주는 듯.
package.json 파일이 없는 상태에서 express 등의 패키지를 설치하려하면 원치 않는 디렉터리에 package.json 파일을 자동 생성하고, 그쪽에 패키지를 설치할 수 있으니 우선적으로 package.json 파일을 생성해야 한다.
npm i express
npmjs 웹 페이지에서 express를 검색하면 install 명령어를 확인할 수 있다.
"dependencies": {
"express": "^4.17.1"
}
설치가 완료되면 pakage-lock.json과 node_modules가 생성이되고 pakage.json에 dependencies 가 생긴다.
이 말은 내가 생성한 패키지는 express 4.17.1 이상의 버전을 의존한다는 뜻이고, express는 또 다른 50개의 패키지들을 의존한다. (@4.17.1 기준) node_modules에는 이 50개의 패키지들이 설치되어 있고, 그 패키지들에 대한 의존이 pakage-lock.json에 정의되어 있다.
pakage.json이 중요한 이유는 여기에 필요한 패키지 정보들이 다 적혀있기 때문이다. 때문에 배포할 때 패키지까지 묶어서 전달할 필요 없이 pakage.json 파일만 건내주면 된다. 그럼 npm으로 pakage.json 파일의 dependencies를 참조하여 필요한 패키지들을 설치하여 이용할 수 있다.
'JavaScript' 카테고리의 다른 글
Express로 서버 만들기 (0) | 2020.02.20 |
---|---|
<canvas> height와 width 렌더링 왜곡 문제 (0) | 2020.02.19 |
Node.js 개요 (0) | 2020.02.18 |
change event (0) | 2020.02.01 |
select option에 attribute 추가하기 (0) | 2020.02.01 |
댓글