MongoDB function, req, res 이용하기

김가영·2020년 10월 16일
1

Node.js

목록 보기
13/34
post-thumbnail

몽고디비 함수

mongodb documentation

Create()

Model.Create(object)

.post(async (req, res, next) => {
        try{
            const post = {
                type : req.body.type,
                title : req.body.title,
                rate_count : req.body.rate_count,
                content : req.body.content,
            }
            if(post.type == "book"){
                post.author = req.body.author;
            }else{
                post.release_date = req.body.release_date;
            }
            console.log(req.body);

            if(req.body.img_url!='Undefined' || ''){
                post.img_url = req.body.img_url;
            }

            const result = await Post.create(post)
            console.log(result);
            res.status(201).json({success : true});
        }catch (err){
            console.log(err);
            next(err);
        }
    });

findOne(filter__)

ObjectID 이용하기

Post의 ObjectID를 이용하여 게시글을 불러오기

router.route('/detail/:post_id')
    .get(async (req, res, next) => {
        try{
            const ObjectId = require('mongoose').Types.ObjectId;
            const post = await Post.findOne({_id : ObjectId(req.params.post_id)})
            res.status(200).json(post);
            console.log(post);

        }catch(err){
            console.log(err)
            next(err)
        }
    })

deleteOne()

deleteOne(filter__)

.delete(async (req, res, next) => {
        try{
            const ObjectId = require('mongoose').Types.ObjectId;
            const result = await Post.deleteOne({_id : ObjectId(req.params.post_id)});
            if(result.deletedCount == 0){
                res.status(402).json({
                    success : false,
                    message : "일치하는 게시물이 존재하지 않습니다"
                });
            }else{
                res.json({
                    success : true,
                    message : "게시물 삭제 완료"
                });
            }
        }catch(err){
            console.log(err);
            next(err);
        }
    })

update()

.patch(async (req, res, next) => {
        try{
            const ObjectId = require('mongoose').Types.ObjectId;
            const obj = req.body
            const del_obj = {}
            for(let key in obj){
                del_obj[key] = obj[key];
            }
            const result = await Post.update({ _id : ObjectId(req.params.post_id)},  del_obj );
            console.log(del_obj);
            if(result.n == 0){
                res.status(400).json({
                    success : false,
                    message : "일치하는 게시물이 없습니다"
                })
            }else{
                res.json({
                    success : true,
                    message : "게시물 수정 완료"
                })
            }
            

        }catch(err){
            console.error(err);
            next(err);
        }
    })

req, res 이용하기

url 주소에 위치한 변수 이용하기
req.params.변수명 req.query
json 형태로 body 에 있는 변수 이용하기
req.body.변수명

router.delete('/comments/:comment_id', authUtil.checkToken, answerController.deleteComment);

return
res.status(statusCode).json(object)

profile
개발블로그

0개의 댓글