지난글에서 MySQL Workbench에 테이블을 생성하는 것 까지 했다.
이제 테이블에 Node js를 통해 플러터에서 무언가를 쏴줘야 할것이다.
그렇다면 Node.js로 회원가입을 하는 코드를 짜봅시다
VScode를 키고
const mysql = require('mysql');
const mysqlConnection = mysql.createConnection({
host: 'rds 엔드포인트',
user: 'mysql 유저이름',
database: 'db이름',
password: '비밀번호'
});
mysqlConnection.connect(function (error){
if(error){
console.log(error);
return;
}else{
console.log('Database is connected');
}
});
module.exports = mysqlConnection;
이렇게 db파일을 먼저 만들어주자.
그리고 새로운 js파일을 만드시고.
const {Router} = require('express');
const router = Router();
const mysqlConnection = require('../database/'); //본인이 db파일 넣으신 경로
router.get('/', (req,res) => {
res.status(200).json('Server on port 8000 and database is connected');
});
이런식으로 우선 적어주신다음.
router.post('/:users', (req,res)=>{
const userName = req.body.userName;
const profileImg = req.body.profileImg;
const phoneNumber = req.body.phoneNumber;
const email = req.body.email;
const chatRoomCode = req.body.chatRoomCode;
const userState = req.body.userState;
const stateMsg = req.body.stateMsg;
const userId = req.body.userId;
const birthday = req.body.birthday;
var sql = 'INSERT INTO Users (userName, profileImg, phoneNumber, email, chatRoomCode,userState,stateMsg,userId,birthday) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);';
var params = [userName, profileImg, phoneNumber, email, chatRoomCode,userState,stateMsg,userId,birthday];
mysqlConnection.query(sql,params,function(error,result){
if(!error){
res.json({result : true, msg : '회원가입에 성공'});
}else{
console.log(error);
}
});
});
module.exports = router;
요런식으로 post방식으로 넣는 코드를 짜보았다.
저장을 하시고 새로운 파일을 하나더만든다.
index역할을 할 파일이 필요하다.
const express = require('express');
const app = express();
app.set('port', process.env.PORT || 3000); //본인이 사용할 포트 입력
app.use(bodyParser.json({extended: true}));
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.json());
app.use(require('./')); //위에 insert구문을 짠 js파일의 경로를 안에 넣어주세요.
app.listen(app.get('port'), ()=>{
console.log('Server on port', app.get('port'));
})
이렇게 만들어진 3개파일을 넣어주시고
https://www.postman.com/ 에서 테스트를 해본다.
만약 지금까지 따라왔는데 안되는 경우는
1. 경로가 틀렸거나
2. 보안규칙에서 포트를 안열어뒀거나 (EC2 인스턴스 , RDS 인스턴스 둘다확인)
이제 Flutter로 온다.
Dio를 구비해주시고 (pub.dev 가셔서 받으시면됩니다.) Dio는 http통신을 도와주는 라이브러리에요
회원가입 버튼을 눌렀을때 이런식으로 처리를 해주시면됩니다.
http://엔드포인트:포트/경로
이런식으로 적으시면되는데
여기서 엔드포인트는 EC2인스턴스의 엔드포인트입니다.
이러면 무난하게 mysql에 잘들어간것을 확인할수있다.
끝
'AWS' 카테고리의 다른 글
Flutter + Node.js +RDS+EC2 데이터 통신 (2) (0) | 2021.09.11 |
---|---|
Flutter + Node.js +MySQL 플러터로 MySQL과 데이터 통신 (1) (0) | 2021.09.11 |
Flutter에서 Amplify Cognito를 적용해보자 (3) (0) | 2021.09.04 |
AWS Amplify 초기화 (2) (0) | 2021.09.04 |
AWS Amplify를 사용해보자. (1) (0) | 2021.09.04 |