Node.js는 확장성 있는 네트워크 애플리케이션 개발에 사용되는 소프트웨어 플랫폼
org : Node.js®는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임(runtime)입니다.
프로그램이 실행되고 있을 때 존재하는 곳을 뜻함 즉, "환경"으로 웹 브라우저만이 JS를 실행할 수 있는 유일한 런타임이 였지만 node.js를 사용하여 서버사이드에서도 새로운 런타임 환경을 사용할 수 있습니다.
node 설치에서 OS에 맞춰서 설치할 수 있고 최신버전보다는 LTS 버전을 사용하는게 안전
node -v
터미널에 명령어를 통해 설치 확인 및 버전을 체크
node.js를 사용해 서버를 개발할 때, 보다 쉽게 사용할 수 있게 도와주는 웹 어플리케이션 프래임워크
익스프레스를 사용하기 위한 서버폴더로 이동 index.js 혹은 server.js 파일 생성
npm init
명령어로 package.json
생성
npm i express
명령어로 익스프레스 설치
"dependencies": {
"express": "^4.18.1",
}
Notice 👇
npm5 버전 이상부터는 package.json의 dependencies에 추가하기 위해서npm i express --save
처럼 --save 옵션을 추가하지 않아도 자동으로 dependencies에 등록됩니다.
npm i express --dev
혹은npm i express -D
처럼 --dev, -D 옵션은 devDepndencies에 패키지를 등록합니다.
- dependencies: 에 위치한 항목들은 프로젝트에 의존성을 가지고 있는 모듈로 필요하다는 의미
- devDependencies: 에 위치한 항목들은 프로젝트에 의존성을 가지고 있지 않고 개발 환경에서 사용될 모듈이란 의미
devDependencies에서 대표적으로 사용하는 노드몬을 설치
npm i nodemon -dev
노드몬은 코드의 변경이 일어나면 서버를 종료했다 다시 시작하는 번거로움을 없애주는 툴로 코드 변경시 서버를 다시 시작해준다.
"scripts": {
"start": "node index.js",
"nodemon": "nodemon index.js",
},
사용법은 위처럼 스크립트에 노드몬을 추가해준다.
const express = require('express')
const app = express()
const port = 5000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})
익스프레스 문서에 나와 있는 기본 사용법으로 3000번 포트는 클라이언트 개발에 사용되기 때문에 5000으로 변경해줍니다.
"scripts": {
"start": "node index.js",
},
package.json에 "scripts"에 노드를 실행시키는 명령어를 추가합니다.
서버 실행을 위해 터미널에 명령어 입력 npm run start
url에 http://localhost:5000 검색해 Hello World!가 나오는지 확인
MongoDB를 사용하기 위해서 클러스터(CLUSTER)와 User를 생성합니다.
클러스터가 생성되면 클러스터 박스안에 Connect 클릭
Connect your application 클릭
2번의 url 복사
node.js에서 express를 사용하여 서버를 보다 편하게 개발하듯 MongoDB를 보다 편하게 사용하기 위한 툴
다시 코드로 와서 Mongoose 이용해서 DB를 연결하기 위해서 설치
터미널에 npm i mongoose
입력
const mongoose = require("mongoose");
mongoose
.connect(
"복사한 url과 id/password"
)
.then(() => console.log("MongoDB 연결 성공..."))
.catch((err) => console.log(err));
위와 같이 입력한다
connect의 두번째 인자로 옵션을 주지만 몽구스 버전이 6.0 이상이라면 몽구스는 항상 useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false, 로 기억하고 실행하기 때문에 더이상 지원하지 않는다
npm run start
명령어로 서버를 실행하고 "MongoDB 연결 성공..."이 나오는지 확인
터미널에 위와 같이 express && mongoose가 정상적으로 확인되는지 확인