Node.js에서 MySQL 모듈로 db 서버에 접근하기-기본편

해피데빙·2022년 3월 7일
0

TIL

목록 보기
29/45

출처 : 생활코딩
https://opentutorials.org/course/3347/21185

mysql 문서
https://github.com/mysqljs/mysql

공식문서 : npm의 mysql

node.js가 mysql의 클라이언트로 작동하게 되는 것!!

node.js에서 mysql 사용하기

node.js에서 mysql서버에 접속해서 정보를 가져오고 수정하는 방법은?
node.js의 기본 모듈 중에 mysql을 제어하는 모듈이 있는지? 없음
npm 중에 mysql 모듈을 사용할 수 있음

npm install -S mysql
cf. -S (또는 --save) : package.json의 dependencies에 추가
=> 소스 코드를 다른 곳에서 복제 및 생성 시 package 안에 있는 내용 바탕으로 Mysql 설치할테니

예시

let mysql = require('mysql'); 
let connection = mysql.createConnection({ 
//모듈과 관련된 객체에 소속되어 있는 createConnection 메소드에 객체 전달하는 것으로 약속 
	host: db 서버가 어떤 컴퓨터에 있는가 (node.js와 mysql 서버가 같은 컴퓨터면) 'localhost', 
    user:'root' (변경 가능), 
    password: '11111', 
    database: 'opentutorials'//이런 이름의 db를 쓸 것
})//이 결과가 connection라는 변수에 담긴다 

connection.connect()//접속을 해주는 메소드

접속 끝내고 query라는 메소드 사용
connection.qurey(sql문, 콜백함수)

connection.query('SELECT 1+1 AS solution', function(error, results, fields){
if(errror){

console.log(error);

}
console.log(result);

connection.end(); //connection을 끊는다 

}
//sql이 db 서버에 전송되어서 실행이 끝난후에 콜백함수의 results에 결과물이 들어간다
// 두번째 인자인 콜백이 호출되어서 result에  본문 구현 : error가 있으면 ~~,  없으면~~

1.mysql에서 mysql 클라이언트인 mysql 모니터를 통해 db 서버에 접속하기
mysql -u root -p
비번 입력
접속

1.node.js에서
이런것처럼 서버에 접속하기 위해서는 비번 등의 정보들을 전해줘야 한다
=> mysql.createConnection(안에 비번 등의 정보 전달)

2.mysql에서 mysql에 접근하기
sql문법 사용

2.node.js에서 mysql에 접근하기
connection.query(sql, function(){})

3.mysql에서
mysql에서 exit를 해서 접속을 끊는다

3.node.js에서
connection.end();

connect()

db 서버에 연결
let mysql = require('mysql')
let connection = mysql.createConnection(...);

connection.connect();

connection.connect(functino(err, result){
if(err){
console.error('error')
}

console.log(result);

})

query()를 사용하면 암묵적으로 연결

query()

connection.query(sql, function(error, results, fields){
//results에 sql을 사용한 결과가 담긴다
}

end()

connection.end(function(err){
});

connection.destroy();
//더 과격한 방법

profile
노션 : https://garrulous-gander-3f2.notion.site/c488d337791c4c4cb6d93cb9fcc26f17

0개의 댓글