본문 바로가기

Project 기록/와글와글(web)

[프로젝트] id 중복확인 기능을 만들자 !!! ② (react)

728x90
반응형

앞서 말했던 server.js 와 index.js 파일을 만들어 보자  !!

 

우선 소스 경로는 이렇게 만들었다. 이유는 친구들이 이렇게 하길래 따라했다 

참고로 src 폴더 바깥이다

 

<<server.js>>

const express = require('express');             //익스프레스 모듈 가져오기 
const app = express();
const cors = require('cors');                   //cors를 사용하고 싶다
const bodyParser = require('body-parser');      //body-parser을 사용하고 싶다
const port =3001;                               //서버포트는 3001번 포트
const route = require('./routes/index');        //router가 있는 곳이다 만들 index.js다
app.use(bodyParser.json());

app.use(cors());
app.use('/', route);
app.listen(port, ()=>{
    console.log(`express is running on ${port}`);   //익스프레스 연결 확인
})

 

cors : CORS는 Cross Origin Resource Sharing의 약자로 도메인 또는 포트가 다른 서버의 자원을 요청하는 매커니즘

 

body-parser: node.js 모듈, 클라이언트 POST request data의 body로부터 파라미터를 편리하게 추출할 수 잇따

 

 

 

 

 

다음 파일에서는 본격적으로 클라이언트가 보낸 요청과 mysql 데이터를 지지고 볶는 곳이다

참고로 lcalhost이며 root계정이다

 

<<index.js>>

const express = require('express');
const router = express.Router();
var mysql = require('mysql');         //마이에스큐엘을 쓰고싶다!!

let connection = mysql.createConnection({  //mysql연결하기위함
    host: 'localhost',
    user: 'root',
    password: 'jeong1207',
    database: 'probo'                      //내 데이터베이스 이름
});

connection.connect(function(err){          //mysql을 연결해주는 친구이다
    if(err) console.error('mysql connection error : ' + err);  //정상연결 되었는지 확인용 log
    else console.log('mysql is connected successfully!');
}); 



router.post('/checkid', function (req, res) {  // client(signup_page.js)에서 이경로로 fetch햇따
  let user_id = req.body.id;     //req는 데이터를 받은건데 ①에서 data객체를 보내줫었다

  console.log(req.body.id);
  let sql = 'select id from usertable where id=?' //sql 쿼리문-> id 에맞는 row들고 오고싶다
  connection.query(sql, [user_id], function (err, rows, fields) {
      console.log(rows);
      let checkid = new Object();
      checkid.tf =false;              // 이 아이디를 사용가능 한가요??

      if (rows[0] === undefined) { //중복되는게 없으면 (없으니까 못가져왓겠지)
          checkid.tf = true;  //없음 사용가능
          res.send(checkid);  //다시 클라이언트로 보낸다 checkid 객체를
      }

      else {
          
          checkid.tf = false; // 중복됨 사용x
          res.send(checkid);  
      }
  })
});








module.exports = router;

 

참고로 내데이터베이스 이다 

 


결과 :

 

에서 확인을 누르면

라고 뜬다 왜냐하면 가입 돼있으니까!!

 

 

이건 가능하다고 뜬다

 

 

 

 

서버자신감!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

반응형