<Node.js with Express> 프론트서버로부터 받은 FormData를 Express서버에서 확인하고 싶습니다
조회수 1487회
렌더링된 화면에서 버튼을 누르면 mySubmit메서드가 실행되면서 Node서버에 xhr요청을 보냅니다. 이 때 formData에 각 필드 값이 잘 들어갔는지는 확인이 되었구요 (요청을 보내기 직전에 fd.get('email')를 찍어보면서 확인했습니다)
// 회원가입을 위한 vue컴포넌트.
// 하나의 컴포넌트를 이루는 template, js, css를 각각의 파일로 분리했고 그 중 js의 내용
// 템플릿에서 v-model디렉티브를 사용하여 input태그의 value와 컴포넌트의 data가 연결되어있음
export default {
name: 'join',
data () {
return {
emailField: '',
nickField: '',
pwField: ''
}
},
methods: {
mySubmit(evt) {
evt.preventDefault();
const fd = new FormData()
fd.append('email', this.emailField)
fd.append('nick', this.nickField)
fd.append('password', this.pwField)
const xhr = new XMLHttpRequest()
xhr.onload = function() {
console.log(xhr.responseText)
}
xhr.open('POST', 'http://localhost:3000/auth/join')
xhr.send(fd)
}
}
아래의 라우터로 잘 들어와서 json객체를 프론트 서버로 반환하기까지 합니다.
// /auth/join 경로에 대한 라우팅
router.post('/join', isNotLoggedIn, (req, res, next) => {
res.json({
success: true,
email: req.body.email,
nick: req.body.nick,
pw: req.body.password
})
});
그런데 formData의 값이 req객체 내 어디로 들어가는지 모르겠어요.. 응답으로 돌아온 객체엔 {success: true}밖에 안나옵니다 req.body에 email이나 nick 등이 없기 때문이겠죠..?ㅠㅠ Express서버에서 req.body를 콘솔에 찍어봐도 텅 비어있고, req객체를 통째로 콘솔에 찍어서 찾아봐도 email이나 nick같은 정보가 들어있는걸 못봤어요ㅠ 그럼 도대체 요청할 때 같이 넣어서 보낸 formData를, 요청을 받은 Express서버에서는 어떻게 확인할 수 있을까요...
댓글 입력