Model Schema 를 수정 후, 기존 데이터 (수정 전 Schema) 의 Index key 값이 새로 생성하려는 데이터와 충돌하면서 발생하는 에러.
주특기 입문 과제중 CRUD의 개념과 REST API에 대한 개념이 확실하게 이해 되는 것 같다.
GET METHOD를 활용한 조회 방식
router.get("/articles",async (req,res)=>{
// res.send("전체 게시글 조회 페이지");
const articles_list = await Articles.find({},{title : 1, names : 1, date : 1}).sort({date: -1});
res.json({articles_list});
});
POST METHOD를 활용한 게시글 작성
router.post("/articles",async (req,res)=>{
const today = new Date();
const {title,names,comment,password} = req.body;
await Count.updateOne({countstring: "count"},{$inc : {count: 1}});
const Id = (await Count.find({ countstring: 'count' }))[0].count
await Articles.create({title,names,comment,today,password,Name_Id : Id, date : today});
res.json({success: true});
});
PUT METHOD를 활용한 게시글 수정
router.put("/articles:Name_Id/modify",async (req,res)=>{
const {Name_Id} = req.params;
const {title,names,password,comment} = req.body;
const pass = await Articles.find({Name_Id: Name_Id});
if(pass.password != password)
{
return res.status(400).json({success:false, errorMessage: " 비밀번호가 틀렸습니다."});
}else{
await Articles.updateOne({Name_Id,password},{title,names,comment});
const articles = await Articles.find({Name_Id : Number(Name_Id)});
res.json({articles})
}
});
DELETE METHOD를 활용한 게시글 삭제
router.delete("/articles:Name_Id/delete",async (req,res)=>{
const {Name_Id} = req.params;
const {password} = req.body;
const pass = await Articles.find({Name_Id: Name_Id});
if(pass.password != password)
{
return res.status(400).json({success:false, errorMessage: " 비밀번호가 틀렸습니다."});
}else
{
await Articles.deleteOne({Name_Id,password});
res.json({success:true});
}
});