생활코딩 Node.js - MySQL 강의를 듣고 공부한 내용을 정리한 게시글입니다.
mysql 모듈 설치
npm install -S mysql
-S는 --save로 바꿔 써도 된다. 이것은 package.json의 "dependencies" 부분에 설치된 모듈을 기록한다.
다만, npm 5버전 이후부터는 -S 없이 npm install만 적어도 "dependencies"에 추가가 된다.
mysql 모듈 사용법
var mysql = require('mysql2'); // mysql 모듈을 불러온다.
// createConnection 메소드의 인자로 전달되는 객체에 자신의 데이터베이스 정보(유저명과 패스워드 등)를 입력
var connection = mysql.createConnection({
host : 'localhost', // host : DB서버의 위치 (ex : localhost)
user : 'me', // mysql 계정의 user 이름 (ex. root)
password : 'secret', // user의 비밀번호
database : 'my_db' // 사용할 데이터베이스 이름
});
connection.connect(); // connection 객체의 connect 이라는 메소드 호출 = mysql 연결 시도
// 사용할 SQL문과 콜백함수를 인자로 사용
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results[0].solution);
});
connection.end(); // mysql 연결 해제
위 코드는 아래 링크에서 참고하였다.
https://www.npmjs.com/package/mysql#introduction
만약 위의 코드를 사용했을때 "ER_NOT_SUPPORTED_AUTH_MODE" 오류가 난다면 아래 링크 참조
https://sirius7.tistory.com/52
CRUD 예시
//Create
connection.query(`INSERT INTO topic (title, description) VALUES(?,?)`, [post.title, post.description], function (error, result) {
/* code */
});
//Read
connection.query('SELECT * FROM topic', function (error, topics) {
/* code */
});
//Update
connection.query(`UPDATE topic SET title=?, description=?`, [post.title, post.description], function (error, result) {
/* code */
});
//Delete
connection.query(`DELETE FROM topic WHERE id=?`, [post.id], function (error, result) {
/* code */
});
SQL문을 원하는 내용에 맞춰서 잘 사용해주면 된다.
여기서 중요한 점 중 하나는 SQL injection을 막기 위해 SQL문에 ? 문자를 placeholder를 사용한 것이다.
'WEB > 🌳 Node.js' 카테고리의 다른 글
[Express] 2. 미들웨어 (0) | 2022.08.06 |
---|---|
[Express] 1. 설치방법과 라우팅 (0) | 2022.08.06 |
[Node.js] 9. 패키지 매니저 npm (0) | 2022.08.02 |
[Node.js] 8. CRUD 게시판 구현 (1) | 2022.08.02 |
[Node.js] 7. POST 방식으로 데이터 전송, 받기 (0) | 2022.08.01 |