NodeJs

[Node JS] 아이디 찾기 기능 구현

dbsxo4083 2024. 7. 25. 15:57

2024.07.25 - [NodeJs] - Node js 회원가입 기능 구현(2)

 

Node js 회원가입 기능 구현(2)

model/user.js //회원가입exports.insertUser = async(data) => { const conn = await dbConnection() try { const query = "INSERT INTO user (id, name, email, phoneNumber, password) VALUES(?,?,?,?,?)" const values = [data.id, data.name, data.email, data.phon

dbsxo4083.tistory.com

코드 설명 및 구조 설명은 이전 포스팅을 참고하여 주시기 바랍니다.

 

model/user.js 

exports.checkId = async (name,phoneNumber) =>{
    let conn;
    try{
        conn = await dbConnection()
        const query = "SELECT id FROM user WHERE name =? AND phoneNumber =?"
        const [rows] = await conn.execute(query,[name,phoneNumber])

        if(rows.length > 0){
            return rows[0].id
        }
        else{
            return null
        }
    } catch (error) {
        console.error('Error executing query:', error.message);
        throw error; // 오류 발생 시 예외를 던져 호출자에게 알림
    } finally {
        await conn.end(); // 연결 종료
    }
}

 

service/userService.js

 

exports.checkId = async (name,phoneNumber) =>{
    try{
        if(!name){
            return {error_message: 'Null Name'} 
        }

        if(!phoneNumber){
            return {error_message: 'Null PhoneNumber'} 
        }

        const isValidCheckId = await userModel.checkId(name,phoneNumber)

        if(isValidCheckId===null){
            return {error_message: 'Null Data'} 
        }

        else{
            return { success: true, message: isValidCheckId};
        }
    } catch(error){
        console.error('Error CheckId:', error.message);
        return { success: false, error: error.message };
    }
}

 

controller/userController.js

 

exports.checkId = async (req,res) =>{
    const {name,phoneNumber} = req.body

    try{
        const result = await userService.checkId(name,phoneNumber)

        if(result.success){
            res.status(200).json({
                status: 200,
                success: true,
                data: `${result.message}`,
            })
        }

        if(result.error_message==='Null Name'){
            res.status(400).json({
                status: 400,
                success: false,
                message: result.error_message
            })
        }

        if(result.error_message==='Null PhoneNumber'){
            res.status(400).json({
                status: 400,
                success: false,
                message: result.error_message
            })
        }

        if(result.error_message==='Null Data'){
            res.status(400).json({
                status: 400,
                success: false,
                message: result.error_message
            })
        }
    } catch (error) {
        res.status(500).json({ error: 'Internal server error' });
    }
}

 

 

routes/userRoutes.js

const express = require('express')
const router = express.Router()
const userController = require('../controller/userController')

router.post('/auth',userController.register)
router.post('/login',userController.login)
router.post('/checkId',userController.checkId)

module.exports = router;

'NodeJs' 카테고리의 다른 글

[Node JS] JWT 토큰 인증 구현  (0) 2024.07.25
[Node JS] JWT토큰 구현하기  (0) 2024.07.25
[Node JS] 로그인 기능 구현  (0) 2024.07.25
[Node JS] 회원가입 기능 구현(2)  (0) 2024.07.25
[Node JS] 회원가입 기능 구현(1)  (1) 2024.07.24