글쓰기 - POST

김형우·2021년 12월 27일
0

node.js

목록 보기
6/26
  • CMD> npm i mongodb --save MongoDB 설치
    const db = require('mongodb').MongoClient;

  • const dbUrl = 'mongodb://id201:pw201@1.234.5.158:37017/db201';
    mongodb://아이디:암호@서버주소:포트번호/DB명


  • CRUD
    : 추가(POST), 조회(GET), 수정(PUT), 삭제(DELETE)
    : Create, Read, Update, Delete

board.js - POST

0. POST

  • router.post('/insert', async function(req, res, next)
    : req = request :(요청, 전달되어) 들어오는 값의 정보 => POST : req.body
    : res = response :전달하는 값

1. DB 접속 (1회만)

const dbConn = await db.connect(dbUrl);

2. DB 선택 + collection 선택

  • const coll = dbConn.db("db201").collection("seqboard");
    DB선택 : dbConn.db("db201")
    collection 선택 : collection("seqboard");
  • seqboard라는 폴더(collection) 생성하고 값(글번호)을 넣을 것.

3. 글번호 자동으로 가져오기 + CRUD 선택

  • CRUD : 추가, 조회, 수정, 삭제 (Create, Read, Update, Delete)

  • 수정하기 findOneAndUpdate

  • const result 
    = await coll.findOneAndUpdate(
                { _id:'SEQ_BOARD_NO' }, { $inc : {seq : 1} }
    
  • {앞은 가지고오는 조건} , {뒤는 업데이트되는 항목}
    {_id가 'SEQ_BOARD_NO' 가져오세요}, { seq값을 기존값에 1 증가시킴 }

4. Send 보내면 CMD에 로그값 확인하기

  • CMD> LOG(result1)값
{
  lastErrorObject: { n: 1, updatedExisting: true },
  value: { _id: 'SEQ_BOARD_NO', seq: 3 },
  ok: 1
}
  • 글번호는 result1.value.seq

5. log에 번호 확인 및 NoSQLBooster 확인

console.log('글번호', result.value.seq);

  • CMD>
-------------------------------------
{ title: '제목', writer: '홍길동', content: '내용글내용' }
-------------------------------------
글번호 13
  • NoSQLBooster > seqboard

  • NoSQLBooster > board


Code

//글쓰기(post) :  localhost:3000/board/insert  //app.js에 있는명칭
// req : request  :(요청, 전달되어) 들어오는 값의 정보 => POST : req.body
// res : response :전달하는 값

router.post('/insert', async function(req, res, next) {
    try{ 
        console.log("-------------------------------------");
        console.log(req.body);
        
        console.log("-------------------------------------");        
        
        const dbConn = await db.connect(dbUrl); 
           
        const coll = dbConn.db("db201").collection("sequence");        
        const result = await coll.findOneAndUpdate(
            { _id:'SEQ_BOARD_NO' }, { $inc : {seq : 1} }     
        );        
        console.log('글번호', result.value.seq);
        
        const coll1 = dbConn.db("db201").collection("board");         
        const result1 = await coll1.insertOne({
            _id     : Number(result.value.seq), 
            title   : req.body.title,           
            content : req.body.content,         
            writer  : req.body.writer,          
            hit     : 1,                        
            regdate : new Date()                
        });
        console.log(result1);
        if(result1.insertedId > 0){
            return res.send({status:200});
        }
        return send({status:-1})
    }
    catch(err){ 
        console.error(err); 
        res.send({status:-2});
    }
});
profile
The best

0개의 댓글