npm install mysql2database 정보를 넣는 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 에 업로드 하지 않도록 한다.
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 구문으로 해당 정보를 데이터베이스에 추가한다