Nodejs + Mongo DB

박경현·2022년 11월 1일
0

몽고 DB를 사용한 간단한 페이지를 만들어보면서 알게 된 과정을 적어보려고 한다

ejs & body-parser

ejs는 html에서 자바스크립트 문법을 적용할 수 있게 만들어 준다!

따로 npm으로 설치할 필요는 없지만, 우리가 express를 사용할때
기본적으로 이제부터 ejs를 사용한다고 setting을 해줘야하는 부분이다

const bodyParser = require('body-parser')
const app = express()

app.set('view engine','ejs');
app.use(bodyParser.urlencoded({extended: false}))
// app.use(express.json()) -> 이건 내장된거여서 이거 쓰자!!

bodyParser의 경우 npm으로 설치했으며 데이터를 주고 받을때 알아보기 쉽게 주고 받게 해주는 역할이다

몽고 DB연결

const MongoClient = require('mongodb').MongoClient;
let db;

MongoClient.connect('몽고db 어픞리케이션 연결명령어', (err,client)=> {
	if (err) {return console.error(err)}
    db = client.db('todoapp)
    
    app.listen(8080,()=> {console.log('server is running')})
})

몽고 db의 경우 일단 인증을 받고 DB를 연결하면 되는 구조다
그 후 우리 app을 listen해주면 DB를 다 받고 처리 해주기 때문에 콜백부분은 동기로 작동한다!

GET

app.get('/write',(req,res)=> {
	res.sendFile(__dirname+'/write.html')
})

간단하게 /write라는게 뒤에 적힐 경우 이 응답을 처리해라라는 명령이다!

app.get('/detail/:id', (req,res) => {
	db.collection('post').findOne({_id: parseInt(req.params.id)},(err,result)=> {
    	res.render('detail.ejs', {data: result})
    })
})

findOne으로 필요한 부분 찾은 후 detail.ejs를 render해주고 그 안에 data를 전달해주기

PUT

edit.ejs에 아래 form을 적어주면서 put형태로 설정할 수 있게 해주었다

이 때 method-override를 npm으로 다운 받아 설치해서 설정해주었다

<form action="/edit?_method=PUT" method="POST" > 
const methodoverrice = require(method-override)
app.use(method.override('_method'))

app.put('/edit',(req,res)=> {
	db.collection('post').updateOne({_id: parseInt(req.body.id)} {$set: {title:req.body.title, date: req.body.date}}, 
    	(err,result)=> {res.redirect('/list')})
})
profile
SW로 문제를 해결하려는 열정만 있는 대학생

0개의 댓글