코딩애플의 강의 중 'Node.js, MongoDB로 2시간 만에 빠르게 웹서비스 만들기'를 수강 중이다.
강의 중 'Database에 자료 저장하는 법 (한줄이면 끝)' 부분에서 간단한 숙제가 나왔는데 진행하는 과정에서 겪은 시행착오를 기록하고자 한다.
숙제 내용은 아래와 같았다.
어떤 사람이 /add라는 경로로 post 요청을 하면, data 2개를 보내주는데 (제목, 날짜 데이터) 이때 'post'라는 이름을 가진 collection에 두 개 데이터 저장하기
나는 MongoClient.connect 안에 아래 코드를 만들어서 숙제를 진행했다
app.post('/add', function(req, res){
db.collection('post').insertOne({제목: req.body.title , 날짜: req.body.date, _id: 1000}, function(에러, 결과){ //post라는 collection에 insertOne
res.send("제목: " + req.body.title + " 날짜: " + req.body.date + "\n저장 완료");
});;
이전까지 배운 코드를 재활용하는 정도라 어렵지 않았는데,
MongoDB 사이트에서 확인하니 일부 데이터는 저장되고, 일부는 되지 않았다.
이에 고민해보니,
강의를 들으며 자동생성되는 id값 대신 직접 id를 지정했는데 이 부분에서 오류가 있었다.
id값이 중복될 경우, overwrite 되지 않고 가장 처음 저장된 값으로 그대로 유지되는 것 같다.
id값을 다르게 설정하여 같은 데이터를 입력하니 해결되었다.
에러 메시지가 뜨지 않아서 단순히 서버 동기화 오류인가 생각했는데 아니라는 것을 알게 되었다...!
'Framework > Node.js' 카테고리의 다른 글
[Node.js] 한 줄로 DB에 자료 저장하기 (0) | 2021.09.22 |
---|