생각기록
2022-12-01 MYSQL nodejs와 연결 본문
노드 js와 연결하는 법
1. npm install mysql;
깔아줍니다.
2.const mysql = require('mysql');
모듈을 가져옵니다.
3.연결 기능을 넣어줄 객체 = mysql.createConnection({ })
.createConnection 이 함수의 옵션으로는
host, user, password, database가 있다.
mysql 에서는 root 최고 권위 유저는 외부 속이 허용되지 않기 때문에!
user: root 로 하면 실행이 되지 않는다.
=> 새로운 계정을 생성해서 접속해야 한다!!
4. 새로운 계정과 비밀번호 설정 하는 방법
# mysql 사용자 추가하기
CREATE USER 'user'@'%' IDENTIFIED BY '비밀번호';
# DB 권한 부여 (모든 DB에 접근 가능하도록)
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;
# 현재 사용중인 MySQL의 캐시를 지우고 새로운 설정을 적용하기 위해 사용
> 실행
FLUSH PRIVILEGES;
select host, user, plugin, authentication_string from mysql.user;
> 잘 만들어졌는지 확인
# mysql 계정 비밀번호를 바꾸고 싶을 때
ALTER USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY '비밀번호';
설정하고 다시 js파일로 돌아가서
5. 연결 객체의 query함수
cnn.query('select * from user', (err, result) =>{ //유저에 대한 것을 가져오겟다
if (err) throw err; //에러가 뭐라하는지 띄움
console.log(result); //에러가 발생하지 않으면~ 결과 값이 잘 담긴다
});
'select * from user', = ' 유저 라는 데이터베이스를 선택 ' 이라는 SQL문을 실행하면,
query 는 (err, result ) 라는 얘들을 콜벡 한다.
- err 객체는 err가 뜨면 뭐라하는지 띄워주고
- result는 정상 실행시 cosonle.log 로 띄웠다.
6. 연결이 성공하면
select가 객체 배열로 나온다.
mysql와 express 서버 연결
ejs 설치 안했..ㅠ
npm install express, ejs 해주고
필요한 객체와 모듈을 다 셋팅하고
1. mysql객체에 연결 셋팅
2. app.get 화면에 보여줄 것 셋팅
> 'select * from user' //user 데이터베이스를 가져오겟다
res.render ('index', { rows : result });
여기서 정보를 받을 때 key, value 표기 하는데
- key: 원하는 이름
- value : 위에서 받은 reuslt 인자값
즉 이 정보를 index.ejs 파일을 랜더하며 준다.
3. ejs파일에서는 해당 값을 이용하기 위해
<%=rows[i]%> 라는 ejs문으로 rows라는 key 사용하여 데이터값을 불러옴
//index.js 파일
const express = require('express');
const app = express();
const port=8080;
const mysql = require('mysql');
app.set('view engine', 'ejs');
const cnn = mysql.createConnection({
host: 'localhost',
user: 'user',
password: '0530arum',
database: 'ar_test'
});
app.get('/', (req,res)=>{
cnn.query('select * from user', (err, result) =>{ //유저에 대한 것을 가져오겟다
if (err) throw err;
console.log(result);
res.render('index',{ rows : result }); //key는 원하는 이름 : 값은 위에서 받은 result
});
});
app.listen(port, ()=>{
console.log('open', port);
})
//index.ejs 파일
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
안녕
<% for(let i = 0; i<rows.length; i++) { %>
<div>
<span><%=rows[i].id%></span>
<span><%=rows[i].name%></span>
</div>
<% } %>
</body>
</html>
'SeSAC 풀스택 > MYSQL' 카테고리의 다른 글
서버 연결 ( 외부 접속 가능 ) / 로컬서버와 서버의서버가 다르다는 사실.. (0) | 2022.12.27 |
---|---|
2022-12-01 MVC 패턴, 방명록 (0) | 2022.12.01 |
2022_11_30_NULL MY SQL 쿼리 조건문 블로그 참고 (0) | 2022.11.30 |
2022-11-29 데이터베이스, mySQL 환경설정 기본개념 (0) | 2022.11.29 |