MySQL을 Node.js와 통합
하려면 널리 사용되는 MySQL 드라이버인
mysql2
. 또한 MySQL을 설치하고 작업할 테이블이 있는 데이터베이스를 생성해야 합니다.
요약
npm i mysql2
터미널에 mysql2 버전으로 설치를 진행한다
import mysql from "mysql2";
const dbInfo = {
host: "localhost",
port: "워크벤치포트",
user: "워크벤치아이디",
password: "워크벤치비번",
database: "db이름",
};
const db = {
init: function () {
return mysql.createConnection(dbInfo);
},
connect: function (conn) {
conn.connect(function (err) {
if (err) console.error("mysql 연결 에러" + err);
else console.log("mysql 연결성공");
});
},
};
export default db;
알아보기 쉽게 db 폴더에 database.js 파일을 만들어서 위 템플릿을 입력한다.
별도의 설정이 없으면 워크벤치 포트는 '3306' 워크벤치 아이디는 'root'
import dbConfig from "../db/database.js";
const conn = dbConfig.init();
dbConfig.connect(conn);
app.js나 server.js처럼 본인이 서버 관리를 위해 만든 js 파일이 있다면 그곳에 import 하면 된다.
router를 사용하는 경우에는 db를 사용하는 router 쪽에 반드시 import를 해야 함!
router.post("/register", (req, res, next) => {
let { url, title, content } = req.body;
const sql =
"insert into news(url,title,content,rdate) values(?,?,?,curdate())";
const params = [url, title, content];
conn.query(sql, params, (err) => {
if (err) {
console.log(err);
} else {
res.redirect("/news");
}
});
});
mysql insert 문법으로 행추가가 가능하다. body에서 받아올 값은 템플릿 리터럴이나 변숫값을 바로 사용하지 말고 일단? 기호로 남겨 conn.query함수에서 받아쓴다. 파라미터값이 여러 개면 위 코드처럼 params(배열명 작명 마음대로)라는 배열을 만들어 사용하면 된다.
mysql 워크벤치나 디비버 같은 기타 툴에서 select 문으로 insert가 정상 적용 되었는지 조회가 가능하다.
설명
mysql2 패키지를.
npm 또는 Yarn을 사용하여 패키지를 설치할 수 있습니다 터미널을 열고 다음을 실행하세요.
npm install mysql2
MySQL 데이터베이스 생성:
MySQL이 설치되어 있는지 확인하고 데이터베이스를 생성하십시오. 예를 들어 다음과 같은 데이터베이스를 생성할 수 있습니다
CREATE DATABASE mydb;
테이블 만들기:
데이터베이스 내부에 테이블을 만듭니다 mydb. 다음 은 users두 개의 열로 구성된 간단한 테이블의 예입니다
USE mydb;
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255));
Node.js 예:
이제 Node.js 스크립트를 생성하여 MySQL 데이터베이스에 연결하고, CRUD(생성, 읽기, 업데이트, 삭제) 작업을 수행하고 오류를 처리할 수 있습니다. 기본적인 예는 다음과 같습니다.
const mysql = require('mysql2');
// Create a connection to the MySQL database
const connection = mysql.createConnection({
host: 'localhost', // Change this to your MySQL server hostname
user: 'your_username', // Replace with your MySQL username
password: 'your_password', // Replace with your MySQL password
database: 'mydb', // Use the name of your database
});
// Connect to the database
connection.connect((err) => {
if (err) {
console.error('Error connecting to MySQL:', err);
return;
}
console.log('Connected to MySQL');
});
// Insert a new record into the 'users' table
const newUser = { name: 'John Doe' };
connection.query('INSERT INTO users SET ?', newUser, (err, results) => {
if (err) {
console.error('Error inserting record:', err);
} else {
console.log('Inserted a new record with ID:', results.insertId);
}
});
// Query data from the 'users' table
connection.query('SELECT * FROM users', (err, results) => {
if (err) {
console.error('Error querying data:', err);
} else {
console.log('Query results:', results);
}
});
// Close the connection
connection.end((err) => {
if (err) {
console.error('Error closing the connection:', err);
} else {
console.log('Connection closed');
}
});
연결 옵션의 자리 표시자 값을 MySQL 서버 세부 정보로 바꿔야 합니다.
예제 실행:
스크립트를 파일(예: mysql_example.js)에 저장하고 Node.js로 실행합니다.
node mysql_example.js
연결, 레코드 삽입, 데이터 검색 및 연결 종료와 관련된 출력이 표시되어야 합니다.
이상 MySQL을 Node.js와 통합하는 방법에 대한 기본 예입니다.
'프로그래밍 > NodeJS' 카테고리의 다른 글
spa로 페이지 구성하기 (0) | 2023.10.30 |
---|---|
bcrypt를 사용한 암호 해시화(암호화)하기 (0) | 2023.10.26 |
method-override (0) | 2023.10.05 |
자바스크립트 문법을 이용한 nodejs router 연습문제 (0) | 2023.10.04 |
ejs foreach문법 쓰는법 (0) | 2023.10.02 |