Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

행복한 개구리

팀프 21.07.15. 요청(request) 내용(body)을 Sequelize통해 DB에 생성 본문

Unity/Project : Cursed Treasure

팀프 21.07.15. 요청(request) 내용(body)을 Sequelize통해 DB에 생성

HappyFrog 2021. 7. 15. 17:54

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

 

JSON.parse() - JavaScript | MDN

JSON.parse() 메서드는 JSON 문자열의 구문을 분석하고, 그 결과에서 JavaScript 값이나 객체를 생성합니다.

developer.mozilla.org

 

const express = require("express");
const initModels = require("./models/init-models");
const app = express();
app.use(express.json());

const { Op, Sequelize } = require("Sequelize");

const sequelize = new Sequelize("테이블 이름", "사용자 이름", "비밀번호", {
  host: "호스트 이름",
  dialect: "mysql",
});

const models = initModels(sequelize);

const port = 3000;

app.get("/", (req, res) => {
  res.send("Hello Sequelize!");
});

app.listen(port, () => {
  console.log(`${port}번 서버 대기중`);
});

app.post("/", async(req, res)=>{
    
    const json = JSON.stringify(req.body);
    const pj = JSON.parse(json);
    const name = pj.name;
    console.log("name : " + name);
    await insert(name);
    res.send("Post");
})

app.get("/api", async (req, res, next) => {
  let json = await connect();      
  res.send(json);
});

async function insert(name){ 
  const user = await models.user.create({nickname : name});
  console.log(user.name);
  await user.save();
}

async function connect() {
  try {
    const users = await models.user.findOne({
      where: {id : "1"}
    });
    let json = JSON.stringify(users);
    console.log(json);
    return json;    
    }
    catch(err){
      console.log(err);
    }
}

 

  • app.use(express.json())을 통해 익스프레스의 json을 사용한다.
  • 그리고 DB와 연동되는 함수들은 async로 사용함으로써 데이터를 가져오기 전에 출력하는 상황을 방지한다.
  • 함수가 실행되면 요청되는 body의 내용을 JSON형식으로 변환한다.
  • 변환된 JSON형식의 데이터를 JSON.parse를 통해 파싱한다. => 원하는 항목의 값을 가져오기 위해서.
  • 파싱한 데이터에서 원하는 데이터를 비동기함수 insert의 매개변수로 할당한다.
  • insert에서 비동기적으로 DB에 할당받은 매개변수를 바탕으로 새로운 데이터를 생성한다.
  • insert에서 save를 하며 끝난다.
  • 그리고 형식에 맞게 postman에서 Post방식 / body내용을 JSON형식으로 적어둔 뒤 실행한다.
  • DB에 데이터가 추가됐음을 확인할 수 있다.