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 |