Diary

[개발일기] node js 찍먹

브라더 코드 2023. 7. 11. 15:43

(2023.6.19) node js로 간단한 crud 프로젝트 만들어보며 정리해본 내용

 

- 세팅

Node프로젝트 시작하는 명령어 : 폴더로 가서 npm init 실행

그러면 폴더 내에 package.json 파일이 생긴다. 즉 이 파일이 있다는 건 프로젝트가 node로 만들어졌다는 것.

Package.json에 ‘type’:’module’ 적어주면 프로젝트에서 js를 common js가 아닌 esm스타일로 적겠다는 뜻. cjs는 require() 문법을 쓴다.

그 다음 폴더 아래에 index.js파일 만들면 세팅 끝이다.

 

- 실행

노드 서버 실행은 터미널에서 node index.js 실행하면 됨

 

- 익스프레스

익스프레스는 가장 많이 사용되는 웹 프레임워크이며 미들웨어들의 연결이다. 미들웨어는 요청과 응답 사이에서 목적에 맞는 일을 수행하는 함수. 

보통 프로젝트에서는 public이라는 폴더를 만들어 정적파일을 저장한다. 예를 들면 html파일.

노드 서버에서 html 파일을 보내줄떈 res.sendFile() 메소드를 사용. 

인자는 파일 경로인데 경로는 __dirname + ‘public/~~’ 이렇게 한다. __dirname은  Import path from ‘path’로 가져와서 const __dirname = path.resolve()로 정확히 만들어준다. __dirname는 이것이 위치하는 파일의 폴더경로를 나타냄.

 

- 노드몬

개발할때 편리한 노드몬 패키지 깔아야 한다. Npm I nodemon -D 뒤에 -D 쓰는건 devDependencies에 설치하는 것임. 개발에 꼭 필요한 모듈은 dependencies에, 개발할때만 필요한 모듈은 devDependencies에 설치하면 됨. 즉 배포할때는 dependencies에 있는 모듈만 가지고 서버를 구성하게 됨. package.json에서 scripts는 특정 내용을 수행하는 명령어를 미리 지정해두는 것. “Start”:’”node index.js”, “dev”:”nodemon index.js” 노드몬 설치할때 이런식으로 해두면 된다.

실행할때는 서두에 npm run을 붙여야 한다. 그러니까 npm run start, npm run dev. nodemon의 장점은 서버 켜진 상태에서 파일 수정해도 반영된다는 점(새로고침해야 함). 서버 재구동 안해도 되서, 서버를 유지할 수 있어서 편하다. 

정리하면 nodemon도 중요하지만 nodemon을 devDependencies에 설치하는 것도 중요하다. 배포할땐 nodemon을 설치할 필요가 없으니깐.

 

- 템플릿 엔진

html에서 공통 부분은 따로 빼는 것(실습에는 nunjucks 사용). res.render() 함수는 서버에서 랜더링해준다는 뜻.

 

- 몽구스

노드에서 몽고디비 사용할때 쓰는 프로그램

Npm i mongoose

포트 3000번에 노드, 포트 27017에 몽고디비 서버가 띄워진다. 독립적으로 돌아가는 이 둘을 연결하기 위해 몽구스가 필요하다.

 

- 몽고디비 구조

몽고디비 > 데이터베이스 > 콜렉션 > 도큐먼트 {: }

그래서 몽고디비 안에 하나의 프로젝트 안에서 데이터베이스~도큐먼트까지 미리 만들어줘야 한다.