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
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.