node.js와 mongoDB로 웹 만들기 (5) 아이디 중복체크(ajax)

2023. 1. 17. 23:37·Node.js
728x90

* 개발환경 - 윈도우, VS Code 

 

1. register.ejs 에 아래 코드 추가

        <script>
            $('#register').click(()=>{
                const id = $("#id").val();
                const pw = $("#pw").val();

                $.ajax({
                    url: '/member/register',
                    method: 'POST'
                    data: {id: id, pw: pw}
                }).done((result)=>{
                    console.log(result);
                    console.log(result.message);
                })
            })
        </script>

회원가입 버튼 누르면 ajax 통신을 하는 코드

jquery 불러오는 코드 밑에 작성해야함

ajax 이용해서 데이터 내보내면서 아이디 중복체크해서 결과를 받을 거임

728x90

 

2. member.js 에 아래 코드 추가

router.post('/register', (req, res)=>{
    console.log('in register post');

    let id = req.body.id;
    let pw = req.body.pw;

    res.status(200).send({message: 'ajax 통신 성공 - id: ' + id + ', pw: ' + pw});
})

ajax로 보낸 값은 req.body 안에 들어있음

 

 

3. server.js 에 아래 코드 추가

app.use(express.urlencoded({extended: true}));

그래야 body-parser 기능을 사용해서 body로 데이터 값을 받을 수 있음

 

 

4. mongoose 설치

 

5. 루트 디렉토리에 models 폴더 만들고 그 안에 User.js 파일 생성

user 정보 저장하는 곳임

 

 

6. User.js에 아래 코드 추가

const mongoose = require('mongoose');

const UserSchema = new mongoose.Schema({
    ID: {
        type: String,
        required: true,
    },
    PW: {
        type: String,
        required: true,
    },
});

module.exports = User = mongoose.model("user", UserSchema);

 

7. member.js에 아래 코드 추가

const User = require("../models/User");   // User model 불러오기
const bcrypt = require("bcrypt");       // 암호화 모듈

router.post(
    "/",
    async (req, res) => {
        const { ID, PW } = req.body;

        try {
            // user에 ID, PW 값 할당
            let user = new User({
                ID,
                PW,
            });

            // PW 암호화하기
            const salt = await bcrypt.genSalt(10);
            user.PW = await bcrypt.hash(PW, salt);

            await user.save();  // db에 user 저장

            res.send("Success");
        }   catch (error) {
            console.error(error.message);
            res.status(500).send("Server Error");
        }
    }
);

bcrypt는 쓰기전에 설치해야됨

 

 

728x90

'Node.js' 카테고리의 다른 글

[Node.js] http 모듈로 서버 구축하기(2) - REST API  (24) 2024.03.13
[Node.js] http 모듈로 서버 구축하기(1) - http 모듈, fs 모듈  (0) 2024.03.04
node.js와 mongoDB로 웹 만들기 (4) mongoDB 연결  (0) 2023.01.13
node.js와 mongoDB로 웹 만들기 (3) 로그인, 회원가입  (0) 2023.01.12
node.js와 mongoDB로 웹 만들기 (2) 서버 구축 및 실행  (0) 2023.01.11
'Node.js' 카테고리의 다른 글
  • [Node.js] http 모듈로 서버 구축하기(2) - REST API
  • [Node.js] http 모듈로 서버 구축하기(1) - http 모듈, fs 모듈
  • node.js와 mongoDB로 웹 만들기 (4) mongoDB 연결
  • node.js와 mongoDB로 웹 만들기 (3) 로그인, 회원가입
gamzaggang7
gamzaggang7
    250x250
  • gamzaggang7
    abcdefghklpqrstuvwxyz
    gamzaggang7
  • 전체
    오늘
    어제
    • 분류 전체보기
      • CS
        • OS
        • 자료구조_알고리즘
      • Java
      • Javascript
      • Node.js
      • React
      • Vue.js
      • 코딩테스트
        • 백준-Java
        • 프로그래머스-JS
      • Canvas
      • HTML, CSS
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준풀이
    fecolormatrix
    서버구축
    정렬
    vue animation
    vue modal
    css
    Next.js
    자바
    해시
    라우팅
    props
    스택
    2차원배열
    vue.js
    프로그래머스
    npm
    Node.js
    dat.gui
    hashchange
    오즈코딩스쿨
    React
    til
    자바스크립트
    큐
    자바백준풀이
    canvas
    자바공부
    fegaussianblur
    BFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
gamzaggang7
node.js와 mongoDB로 웹 만들기 (5) 아이디 중복체크(ajax)
상단으로

티스토리툴바