1. mongoose 설치
npm install mongoose
2. MongoDB연결
server.js
const mongoose = require('mongoose')
mongoose.connect('mongodb://localhost:27017/testdb')
const db = mongoose.connection
db.on('error', (err) => {
console.log(err)
})
db.once('open', () =>{
console.log('DB Connection success')
})
3. schema 만들기
Blog.js
const mongoose = require('mongoose')
const Schema = mongoose.Schema // const {Schema} = mongoose
const blogSchema = new Schema({
title: String, // {type: String}
author: String,
body: String,
date: { type: Date, default: Date.now },
}, {timestamps : true})
module.exports = mongoose.model('Blog', blogSchema )
mongoose.model('Blog', blogSchema )
첫번째 인자로 Colletion을 생성(소문자로 바꾸고 복수형이 컬렉션명이됨)
기본적으로 MongoDB 는 _id 프로퍼티를 스키마에 자동생성(ObjectId)
ex)
createdAt, updateAt 은 timestamps : true를 추가해서 나오는 것
4. Controller 만들기
BlogController.js
const Blog = require('../models/Blog')
// Show the list of blogs
const index = (req, res, next) => {
Blog.find()
.then(response => {
res.json({
response
})
})
.catch(error => {
res.json({
message: 'Error!'
})
})
}
// add new blog
const addBlog = (req, res, next) => {
let blog = new Blog({
title : req.body.title,
author : req.body.author,
body: req.body.body,
})
blog.save()
.then(response => {
res.json({
message: 'BlogAdded Succecssfully'
})
})
.catch(error => {
res.json({
message: 'Error!'
})
})
}
module.exports = { index, addBlog }
5. routes 만들기
const express = require('express')
const router = express.Router()
const BlogController = require('../controllers/BlogController')
router.get('/', BlogController.index)
router.post('/addBlog', BlogController.addBlog)
module.exports = router
6. server.js 수정
const mongoose = require('mongoose')
mongoose.connect('mongodb://localhost:27017/testdb')
const db = mongoose.connection
db.on('error', (err) => {
console.log(err)
})
db.once('open', () =>{
console.log('DB Connection success')
})
app.use('/api/blog', BlogRoute)
마지막에 추가
7. postman으로 테스트
데이터 삽입
출력
전체코드
server.js
mongoose.connect('mongodb://localhost:27017/testdb')
const db = mongoose.connection
db.on('error', (err) => {
console.log(err)
})
db.once('open', () =>{
console.log('Database Connection Established')
})
const app = express()
app.use('/api/blog', BlogRoute)
Blog.js
const mongoose = require('mongoose')
const Schema = mongoose.Schema // const {Schema} = mongoose
const blogSchema = new Schema({
title: String, // {type: String}
author: String,
body: String,
date: { type: Date, default: Date.now },
}, {timestamps : true})
module.exports = mongoose.model('Blog', blogSchema )
BlogController.js
const Blog = require('../models/Blog')
// Show the list
const index = (req, res, next) => {
Blog.find()
.then(response => {
res.json({
response
})
})
.catch(error => {
res.json({
message: 'Error!'
})
})
}
// add
const addBlog = (req, res, next) => {
let blog = new Blog({
title : req.body.title,
author : req.body.author,
body: req.body.body,
})
blog.save()
.then(response => {
res.json({
message: 'Added Succecssfully'
})
})
.catch(error => {
res.json({
message: 'Error!'
})
})
}
module.exports = {
index,addBlog
}
blog.js(routes)
const express = require('express')
const router = express.Router()
const BlogController = require('../controllers/BlogController')
router.get('/', BlogController.index)
router.post('/show', BlogController.show)
router.post('/addBlog', BlogController.addBlog)
module.exports = router
반응형
'Javascript > nodejs' 카테고리의 다른 글
Mongoose findOne $or이 뭐지? (0) | 2023.12.30 |
---|---|
[Node.js] 파일 업로드 (multer, 예제) (0) | 2023.12.30 |
Robo 3T(Studio 3T) 설치 (0) | 2023.12.25 |
MongoDB 설치 (0) | 2023.12.25 |
Node.js 세팅(express) (1) | 2023.12.23 |