fetch("/login/nicknameCheck",{
method : "post",
headers : {"Content-Type":"application/json"},
body : JSON.stringify(data)
})
.then(res => res.json())
.then(result => {
console.log("result : ", result);
if(result == 1){
alert("닉네임 중복체크를 진행해주세요.")
}else{
register();
}
})
front 에서 fetch() 를 사용하여 POST 방식으로 서버에 데이터를 요청
const process = {
nicknameCheck : async (req, res) => {
let inputNickname = req.body.nickname;
let result = await service.duplicationCheck.nicknameCheck(inputNickname);
// 아이디가 존재할 시 result : 1
// 아이디가 존재하지 않을시 result : 0
res.json(result);
}
}
controller 에서 localhost:3000/login/nicknameCheck 로 요청이 들어오기는 하나 프론트에서 보내준 파라미터 값이 서버에서 req.body 로 받아지지 않는 현상 발생
- 해결방법 -
const express = require("express");
const app = express();
const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded());
app.use(bodyParser.json());
const router = require("./src/routers/root_router")(app);
app.use("/", router);
app.set("views", "./src/views");
app.set("view engine", "ejs");
app.listen(3000, () => {
console.log("3000 서버 구동");
});
최상단의 app.js 에서 app.use(bodyParser.json()); << 다음과 같이 json 형식의 파일을 bodyParser 미들웨어로 설정해 놓지 않아서 발생한 문제였다.
( post 형식의 데이터는 body-parser 를 사용하여 넘어오는 json 형식의 데이터를 변환시켜 사용해야 한다 )
위 설정 이후 console.log(req.body) 를 확인하니 정상적으로 값이 넘어온다.
오늘의 교훈 : POST 방식을 사용하면서 bodyParser 를 사용하지 않은 나는 바보이다....
728x90
'프로젝트' 카테고리의 다른 글
Oracle Cloud 오류 ( Error: NJS-500: connection to the Oracle Database was broken ) ( 해결 완료 ) (2) | 2024.04.25 |
---|---|
Oracle Cloud 속도 이슈 ( 해결 완료 ) (0) | 2024.04.16 |
Node.js 로 Oracle Cloud DB 접속하여 쿼리문 실행하기 (0) | 2024.04.05 |
Oracle Cloud DB 접속 방법 (0) | 2024.04.05 |
[JAVA] 파일 입, 출력을 이용한 회원 관리 프로그램 (0) | 2024.03.03 |