Node.js 입문주차에 들어서 데이터베이스 중 비관계형 데이터베이스인 MongoDB를 배우고 있다.
mongoose는 MongoDB
MongoDB ODM 중 가장 유명한 라이브러리인데
데이터베이스 연결, 스키마 정의, 스키마에서 모델로 변환, 모델을 이용해 데이터를 다루고 프로미스와 콜백 등 자바스크립트 언어로 사용 가능하다.
-> npm 공식문서 : https://www.npmjs.com/package/mongoose
-> mongoose docs : https://mongoosejs.com/docs/guides
$npm install mongoose
const mongoose = require('mongoose')
const connect = () => {
mongoose
.connect('mongodb://root:[설정한 비밀번호]@localhost:27017/admin', {
dbName: '[원하는 db명]',
useNewUrlParser: true,
})
.then(() => {
console.log('몽고디비 연결 성공')
})
.catch((err) => {
console.log('몽고디비 연결 에러', err)
})
}
mongoose.connection.on('error', (error) => {
console.error('몽고디비 연결 에러', error)
})
mongoose.connection.on('disconnected', () => {
console.error('몽고디비 연결이 끊겼습니다. 연결을 재시도합니다.')
})
module.exports = connect
// app.js(메인서버파일)
const connect = require('./schemas')
// 스키마 폴더 > post.js
const mongoose = require('mongoose')
const { Schema } = mongoose
const postSchema = new Schema({
title: {
type: String,
required: true,
},
name: {
type: String,
required: true,
},
password: {
type: Number,
required: true,
},
content: {
type: String,
required: true,
},
createdAt: {
type: Date,
default: Date.now,
},
})
module.exports = mongoose.model('Post', postSchema)
// exports 까지 해줘야 다른 파일에서 사용 가능함.
// routes 폴더 > posts.js (routes 파일 이름은 보통 복수형으로 쓴다고 한다)
const express = require('express')
// 아래와 같이 만들어 놓은 스키마를 require 해서 사용한다
const Post = require('../schemas/post')
// ~~ 본인 상황에 맞는 필요한 코드를 작성~~
// app.js
const postsRouter = require('./routes/posts')
~~
app.use('/posts', postsRouter)