[Node js] 2. DB 연동

정석·2023년 12월 11일

Node js

목록 보기
2/2
post-thumbnail

Database 연동

1. mysql2 설치

  • 진행중인 node 폴더 경로에 mysql2 패키지를 설치한다.
    npm install mysql2

2. db.js 생성

  • database 정보를 넣는 javascript를 생성한다.

    var mysql = require('mysql2') 
    const dotenv = require('dotenv') // 정보 보호를 위한 .env 사용
    dotenv.config();
    
    var connection = mysql.createConnection({
        host : process.env.DATABASE_HOST,
        user : process.env.DATABASE_USERNAME,
        password : process.env.DATABASE_PASSWORD,
        database : process.env.DATABASE_NAME
    })
    
    connection.connect()
    module.exports = connection
  • database 서버의 정보 보호를 위해 .env 파일을 통해 정보를 숨기도록 한다.

  • .env 코드

    DATABASE_HOST = '111.1.1.1'
    DATABASE_USERNAME = 'root'
    DATABASE_PASSWORD = '1234'
    DATABASE_NAME = 'node'

    이와 같이 실제 Host 주소와 db user name 등 여러 정보를 해당 경로에 넣은 뒤 export하여 사용하고 이러한 정보는 .gitignore 으로 git 에 업로드 하지 않도록 한다.


3. DB INSERT

  • db 설정은 마무리 끝났으니 실제 값들을 받아서 db에 넣어보자

  • 예시 HTML 코드

    <form action ="/contactProc" method="post">
      <ul>
        <li> 이 름 : <input type="text" name ="name" required></li>
        <li> 연락처 : <input type="text" name ="phone" placeholder="phone" required></li>
        <li> 이메일 : <input type="text" name ="email" placeholder="email" required></li>
        <button type="submit">문의하기</button>
      </ul>
    </form>
  • 위와 같이 작성했을 때 submit 버튼을 누르게 되면 이름, 연락처, 이메일에 대한 정보가 contactProc 로 전송된다.

    전송 후 contactProc 의 라우터 부분에 다음과 같이 작성하여 쿼리문을 실행한다.

    app.post('/contactProc', function(req, res){
        const name = req.body.name
        const phone = req.body.phone
        const email = req.body.email 
    
        db.query(`insert into contact(name, phone, email, regdate)
        values('${name}', '${phone}', '${email}' ,now())`, function(err){
            if (err) throw err
            console.log(`${name}`)
        })
    })
  • post 로 받은 정보를 req.body 로 변수에 저장하고, insert 구문으로 해당 정보를 데이터베이스에 추가한다

0개의 댓글