몽고 DB를 사용한 간단한 페이지를 만들어보면서 알게 된 과정을 적어보려고 한다
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으로 설치했으며 데이터를 주고 받을때 알아보기 쉽게 주고 받게 해주는 역할이다
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를 다 받고 처리 해주기 때문에 콜백부분은 동기로 작동한다!
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를 전달해주기
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')})
})