ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 06/16 Sequelize + node.js express 사용연습 2
    데이터베이스 2021. 6. 16. 15:59

    0. 데이터 베이스, 테이블, 데이터 추가

     

    1. express-sequelize 프로젝트 생성

     

    npm init -y

     

    npm i express

    npm i mysql

    npm i sequelize

    npm i sequelize-auto

    npm i sequelize-cli

     

    app.js 생성

    const express = require('express');
    const userRouter = require(__dirname + '/routes/api');
    const app = express();
    const port = 3000;
    
    app.use(express.json())
    app.use('/api', userRouter)
    
    app.get('/', (req, res) => {
        res.send();
    })
    
    app.listen(port, () => {
        console.log('server start');
    })

     

    2. sequelize init

    sequelize init

    sequelize 초기화

     

    3. sequelize auto

    auto.js

    const SequelizeAuto = require('sequelize-auto');
    const auto = new SequelizeAuto("nodejs", "root", "1234", {
        host: "localhost",
        port: "3307",
        dialect: "mysql",
    });
    
    auto.run(err => {
        if(err) throw err;
        console.log("complete!");
    })

     

    node auto

    로 모델 자동 생성

     

    4. 코드 작성

    mysequelize.js

    const initModels = require('./models/init-models');
    const { Op, Sequelize } = require('sequelize');
    const sequelize = new Sequelize('nodejs', 'root', '1234', {
        host: 'localhost',
        port: '3307',
        dialect: 'mysql'
    });
    const models = initModels(sequelize);
    
    module.exports = {
        models,
        Op,
    }

     

    routes/api.js

    const express = require("express");
    const { Op, models } = require('../mysequelize');
    const router = express.Router();
    
    router.get("/users", async(req, res, next) => {
      console.log(req.query.id);
      if(req.query.id == undefined)
      {
        res.send('un');
      }
      
      let tmp = await findFromUsers(req.query.id);
      res.send(tmp);
    });
    
    router.get("/users/all", async(req, res, next) => {
      
        let tmp = await findAllFromUsers();
    
        res.send(tmp);
    });
    
    async function findFromUsers(id) {
        const user = await models.users.findAll({
            where: {
                id: {
                    [Op.eq]: id,
                },
            },
        });
        const json = JSON.stringify(user);
        console.log(json);
        return json;
    }
    
    async function findAllFromUsers() {
        const user = await models.users.findAll();
        const json = JSON.stringify(user);
        console.log(json);
        return json;
    }
      
    module.exports = router;

     

     

    5. 서버 실행 후 리퀘스트

    node app

Designed by Tistory.