세리프 따라잡기
nodejs에 mysql 연동하기 / 오류 발생 수정 / DB 정보 파일 분리 본문
※ 해당 과정에 대한 자세한 내용들은 github에 올려두었습니다😉
1. 설치
npm install --save mysql ← 코드 입력으로 설치하기
[--save를 쓰는 이유: package.json 파일의 dependencies까지 추가시켜주기 위함]
2. 여기에 있는 코드 그대로 붙여넣기 [새로운 파일(mysql.js)을 만들어 붙여넣기함]
var mysql = require('mysql'); //mysql 모듈을 사용
var connection = mysql.createConnection({
host : 'localhost',
user : '자신이 쓰는 이름',
password : '비밀번호 입력',
database : '사용 할 DB 이름 입력'
}); // 4-6번 코드의 한국어는 설명한 것 각자의 것을 기입할 것.
connection.connect();
connection.query('SELECT * FROM topic', function (error, results, fields) { //sql이 1번째 인자, 2번째가 callback
if (error) {
console.log(error);
}
console.log(results);
});
connection.end();
이때 제대로 되었다면 콘솔창에 node 새로운 파일(mysql).js를 입력하고 작동해보면 된다. [입력한 DB가 출력된다면 성공적!]
※ 오류 발생 수정하기
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client ~블라블라~
위와 같은 오류가 발생했을 경우 다음의 방법을 따라해보자!
① MySQL Installer 실행
② Reconfigure 선택
③ Type and Networking 부분은 건들지 않고 next를 누르고, Authentication Method 부분에서 Legacy 부분을 체크하고 next를 누른다.
④ 이후 자신이 설정한 현재 비밀번호를 입력하고 next를 누르며 execute를 하여 설정해주면 끝!
* 보통 설치할 때 위의 RECOMMENDED를 사용하는데, 프로젝트를 할 때 인증 방식의 편리함(?)을 위해 레거시를 사용한다고 한다🙃
3. DB 정보 파일 분리시키기
SQL을 통해 DB를 만지면 여러 private한 정보가 발생하게 된다. 이때 분리시키지 않고 버전 관리(github)에 옮기면... 😣! 때문에 이를 별도의 파일로 분리시켜 gitignore을 통해 해당 파일을 옮기지 않도록 해야한다. 다음과 같이 하자!
① 먼저 파일명(db).js를 생성한다
② 분리할 코드(↓)를 적고 export 하기
var mysql = require('mysql');
var db = mysql.createConnection({
host : 'localhost',
user : '자신이 쓰는 이름',
password : '비밀번호 입력',
database : '사용 할 DB 이름 입력'
}); // 4-6번 코드의 한국어는 설명한 것 각자의 것을 기입할 것.
db.connect();
module.exports = db; // db 객체를 main.js에서 사용할 수 있게 모듈로 export 하기
③ main.js 파일에 export한 모듈 추가하기
var db = require('./lib/db.js'); //db 내용에 정보가 있기 때문에 파일을 분리하고 모듈을 import한 것
④ .gitignore에 제외할 파일명 적기 (필자 기준: lib/db.js)
그리고 커밋과 push를 통해 넣어주면 다음과 같이 제대로 적용된 것을 볼 수 있다!
끝!
4. 행의 id값 알아보기
www.npmjs.com/package/mysql#getting-the-id-of-an-inserted-row 삽입된 행에 대한 id를 가져오는 방법
ㅇ
'Node.js' 카테고리의 다른 글
nodemon 설치 및 사용 정리 (명령어) (0) | 2021.02.08 |
---|---|
nodejs-express 정적 파일 서비스, 에러 처리 (0) | 2021.01.20 |
nodejs-express 미들웨어(body-parser, compression) 설치 및 사용 방법 정리, 만들기, 실행순서에 대해 (0) | 2021.01.18 |
nodejs-express 설치, helloworld 출력 및 코드 의미, 홈·상세 페이지 구현, (0) | 2021.01.12 |
nodejs의 보안(입·출력)과 API에 대해, 끝으로…. (0) | 2021.01.11 |