ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • mysql 게시글 불러오기- 데이터 저장
    DataBase/Mysql 2022. 1. 17. 10:45

    전편에는 mysql을 이용하여 게시글에 관련한 db생성 방식을 설명 하였다면, 이번에는 mysql의 db정보를 가져와

    게시글을 생성하는 방식이다.

    쿼리문을 사용하여 데이터를 불러오는 방식과 sequelize를 이용하여 데이터를 불러오는 방식 2가지가 있다.

    본인은 2가지를 최대한 다양한 방면으로 사용해 보도록 노력하고 있다. 

    일단 sequelize를 통해 데이터를 가져오는 방식으로 설명하겠다.

     

    Sequelize란?
    sequelize란 nodeJS에서 mysql을 사용할 때 raw Query문을 사용하지 않고 더욱 쉽게 다룰 수 있도록
    도와주는 라이브러리이다.
    sequelize는 ORM(Object-Relational Mapping)로 분류가 됩니다.
    ORM이란 객체와 관계형 데이터베이스의 관계를 매핑 해주는 도구이다.
    sequelize를 사용하면 raw Query문을 사용하지 않고 자바스크립트를 이용해서 mysql을 사용할 수 있다.

    설치 방법은 전에 작성한 게시글 불러오기 -db편을 보면 자세히 나와있다.

     

    게시글 작성 post방식
    설치 
    $ npm i nunjucks express mysql mysql2 sequelize -S
    mysql, mysql2, sequelize 그이후에는 db편 참조

    app.js

    // 설치한 라이버러리 불러오기
    const express = require('express');
    const app = express();
    const router = require('./routes/router');
    const nunjucks = require('nunjucks'); //html파일을 사용하기 위해 nunjucks사용
    const port = 8080; //포트 번호 = http://localhost:8080
    app.use("/api", router) // db와 통신에 필요

    app.set('view engine', 'html'); // html을 사용하겠다는 뜻.
    nunjucks.configure('views', { //nunjucks 사용
        express: app,
        watch: true,
    });

    // 페이지 불러오기

    //메인페이지
    app.get('/', (req, res) => {
        res.render('index'); // render뒤에 html파일명 
    });
    // 게시글 작성 페이지
    app.get('/posts', (req, res) => {
        res.render('post'); // render뒤에 html파일명 
    });

    app.listen(port, () => {
        console.log(`서버 접속 http://localhost:${port}`)
    })

    위에는 간단하게 파일을 불러올 준비를 맞춘 상황이다. 

     

    다음은 router파일로 가서 게시글 불러오는 코드를 짜보자.!

    routes/router.js

    //여기서 또 파일별로 나누기!
    const express = require('express');
    const router = express.Router();

    const indexRouter = require('./index');
    const postRouter = require('./post');

    router.use('/', indexRouter); // 메인페이지에 불러올것을 작성
    router.use('/posts', postRouter); // 게시글에 관련된 것을 작성.

    module.exports = router;

     

    routes/ post.js

    // 게시글 작성 페이지
    const express = require('express');
    const router = express.Router();
    const {Posts} = require('../models');

    router.post("/post", async (req, res){
        try{
            const {title, content} = req.body;
            await Posts.create({
                title,
                content,
            });
            res.status(200).send({
               messeage: 'create success!!'
            });
        } catch(error){
            console.log(`${req.method} ${req.originalUrl} : ${error.message}`);
            res.status(400).send({ errorMessage: "형식이 잘못됐습니다.", })
        }
    })

    module.exports = router;

    위에 작성 방식이 sequelize를 사용하여 글 작성한 것을 db에 저장 하는 방식이다. post를 사용하여 정보를 저장하고,

    title과 content의 작성된 것을 불러와 저장하는 방식이다.

    postman을 이용하여 데이터가 잘 들어가는지 확인

    포스트맨을 이용하여 게시글이 잘 작성 되었는지 확인 하는 작업입니다.

    게시글이 잘 작성 되었으면 위에서 message를 작성한 

    문구가 뜰것 입니다. 만약 400번 대가 나온다면 주소쪽에 문제가 되어

    통신이 안되는 것이고 404에러가 뜬다면 코드에 문제가 있을 수 있으니

    잘 확인 해 보시면 금방 해결 할 것입니다.

    사진에서 다른 것은 포트 번호만 다를 뿐입니다 8080에서 3000번만 바뀐 것입니다.

     

    여기까지가 데이터를 저장하는 방식이다. 다음 글에는 게시글을 전부 불러오는 방식을 다뤄 볼 예정이다.

    'DataBase > Mysql' 카테고리의 다른 글

    mysql 게시글 불러오기- 데이터 전부 불러오기.  (0) 2022.01.17
    mysql 게시글 불러오기- db  (0) 2022.01.06
    MYSQL 기본 명령어  (0) 2021.10.11
    Mysql이란?  (0) 2021.10.11

    댓글

Designed by Tistory.