npm(노드 패키지 매니저/Node Package Manager)은 자바스크립트 프로그래밍 언어를 위한
패키지 관리자이다.
자바스크립트 런타임 환경 Node.js의 기본 패키지 관리자이다.
명령 줄 클라이언트(npm), 그리고 공개 패키지와 지불 방식의 개인 패키지의
온라인 데이터베이스(npm 레지스트리)로 이루어져 있다.
이 레지스트리는 클라이언트를 통해 접근되며 사용 가능한 패키지들은
npm 웹사이트를 통해 찾아보고 검색할 수 있다. 패키지 관리자와 레지스트리는 npm사에 의해 관리된다.출처 - 위키백과
즉 자바스크립트 프로그래밍 언어를 하기 위한 패키지 관리자라고 할 수 있다.
NPM을 사용하면 자바스크립트로 만든 다양한 패키지를 npm 온라인 데이터베이스에
올리고 사용자는 그것은 npm과 같은 패키지 관리자를 통해 설치 및 삭제가 가능하다.
노드 패키지를 관리해주는 틀로 장점을 쉽겝 요약하면 좀 더 효율적으로 서버를 구축
할 수 있다는 장점이 있다는 것이다.
하지만 패키지들이 서로 의존되어 있어 문제가 발생하면 다른 것도 엮어 있어
문제를 일으킬 가능성이 크다. 이를 통합 제어하기 위해 있는것이 package.json이다.
[package.json]
npm으로 패키지를 관리하겠다라는 의미로
npm init
이 코드로 시작한다.
출처
name : 프로젝트 이름
version : 프로젝트의 버전
description : 프로젝트에 대한 간단하 설명
main : 프로그램의 시작점이 되는 모듈의 ID
(우리도 npm 생태계에 올릴 수 있게 하는 옵션)
scripts : 현재 프로젝트 내부에서 사용할 수 있는 스크립트 명령들
( "명령이름": "명령~"-> 터미널 $ npm run 명령이름 )
author : 소유주
license : 다른 사용자들이 이 패키지를 사용할 때 필요한 권한
여기서 package-lock.json 파일도 같이 설치 되는데, package-lock은 자동으로
관리 되지만 package.json은 직접적으로 관리할 수 있다.
다음은 수업을 들으면서 메모해 둔 npm 목록들이다. 유용한 코드들이 많으니 꼭 기억
해두자!
mongoose와 express 연결
npm init -y
npm i express ejs mongoose
cookie 기본세팅
npm i cookie-parser //쿠키는 중요한 정보를 저장할 때는 사용하지 않는다. 단순히 요청과 요청 사이에 상태성을 부여하는 것에 가깝다.
expres-session 설치
npm install express-session
connect flash 설치
npm i install connect-flash
Bcrypt 설치
npm i bcrypt
Passport local 3종설치
npm i passport passport-local mongoose passport-local-mongoose
파일 이미지 업로드 npm
npm i multer
파일 비밀키 만들기
npm install multer-storage-cloudinary@4.0.0
npm install multer@1.4.5-lts.1
파일 보안
npm i express-mongo-sanitize
보안을 목적으로 헤더의 동작을 바꾸거나 켜고 끄고 조작이 가능하게 만들어줌
npm i helmet
서버 연결
npm i connect-mongo
몽고 연결
**axios는 HTTP 요청을 쉽게 만들 수 있게 해주는 JavaScript 라이브러리로, 주로 비동기 방식으로 데이터를 서버와 주고받을 때 많이 사용.
npm i axios