12월 2일 (목) cmarket_database (npm, mysql, dotenv 설정 및 controller 설정)

남이섬·2021년 12월 2일
0
post-custom-banner

mysql + dotenv

mysql 모듈은 market Server가 MySQL server와 상호작용할 수 있게 한다

const mysql = require('mysql');
require('dotenv').config();

const database = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: process.env.DATABASE_SPRINT_PASSWORD,
  database: 'market'
})

database.connect((err) => {
  if (err) throw err;
})

module.exports = database;

dotenv

dotenv는 .env 파일에서 process.env로 환경 변수를 로드하는 zero-dependency module이다

env 파일에 환경변수로 password 설정 해놓은 것을 dotenv로 로드 할 수 있다

require('dotenv').config();

password: process.env.DATABASE_SPRINT_PASSWORD

mysql connection

1. 데어베이스와 연결

const mysql = require('mysql');
require('dotenv').config();

const database = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: process.env.DATABASE_SPRINT_PASSWORD,
  database: 'market'
})

database.connect((err) => {
  if (err) throw err;
})

2. query() 메소드로 데이터베이스의 데이터 가져오기

module.exports = {
  items: {
    get: (req, res) => {
      const queryStrting = `select * from items`
      db.query(queryStrting, (err, result) => {
        if (err) {
          res.status(500).send('server Error')
        } else (
          res.status(200).send(result)
        )
      })
    },
  }
const models = require('../models')
const db = require('../db')

const mysql = require('mysql');
require('dotenv').config();

const database = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: process.env.DATABASE_SPRINT_PASSWORD,
  database: 'market'
})

database.connect((err) => {
  if (err) throw err;
})


module.exports = {
  items: {
    get: (req, res) => {
      // get 요청시 mudels로 넘어 감다
      // models의 item으로 이동
      const queryStrting = `select * from items`
      database.query(queryStrting, (err, result) => {
        if (err) {
          res.status(500).send('server Error')
        } else (
          res.status(200).send(result)
        )
      })
    },
  }

orders 까지 query() 메소드로 구현 후
controller 와 model로 분기 처리 후 마무리

profile
즐겁게 살자
post-custom-banner

0개의 댓글