Node.js 입문 -5

Han Lee·2022년 12월 13일
0

Node.js 입문

목록 보기
5/5

DB

DB <-> 웹 서버 <-> 브라우저

mongoose로 연결할때 똑같이 따라 했는데 에러메세지가 나오지만 동작은 해서 알아보니 몽구스가 업데이트되면서 strictQuery가 기본값이 false로 설정되있다고 한다. 몽구스를 연결하는 js에 아래 코드를 넣어주자

mongoose.set('strictQuery',true)

app.js 파일

app.js에서 몽고db와 연결을 위해 필요한 코드

const { default: mongoose } = require('mongoose')

router를 불러오는 -길을 안내해주는

const router이름 = require('router주소')

스키마파일을 불러옴 - 스키마에 db랑 연결한 함수가 있는데 함수 실행도 해줘야 함

const connect = require('./schemas')
connect

json으로 된 body 데이터를 사용하기 위해 -> 라우터 보다 위에 있어야 한다.

app.use(express.json())

라우터를 사용하기 위한 코드

app.use("/api", [router이름])

schemas/index.js 파일

mongodb와 연결하는 함수

const connect = () => {
  mongoose
    //몽고디비:로컬주소/데이터베이스이름
    .connect("mongodb://localhost:27017/sparta_db")
    //만약 에러가 발생을 한다면 -> 에러값을 err에 받아서 console.log로 출력
    .catch(err => console.log(err))
}

연결 한 뒤에 에러가 났을 때

mongoose.connection.on("error",err => {
  console.error("몽고디비 연결 에러",err)
})

schemas/goods.js 파일 - 웹서버가 데이터베이스에 들어있는 문서들을 객체화하여 사용 하기 위해

schema: 해당 컬렉션의 문서에 어떤 종류의 값이 들어가는지를 정의한다.

const 스키마이름 = new mongoose.Schema({})

model: 스키마를 통해 만든 인스턴스 -> 실제 작업에 사용하는
모듈로 밖에서 사용이 된다.

module.exports = mongoose.model("모델명", 스키마이름)

스키마로 데이터베이스를 어떻게 사용할지 정의하고 그 안을 채울 내용물은 모델을 이용해 외부에서 사용한다.

routes/goods.js - router를 만드는

express를 이용해서 router를 생성? -> router객체를 생성

const express = require("express")
const router = express.Router()

GET요청하는 router req: 요청, res: 응답

router.get("URL주소",(req,res) =>{
  res.json({goods})
})
profile
렌덤형 인간

0개의 댓글