인프런 커뮤니티 질문&답변
회원 가입후 다른 기능들이 오류가 발생합니다.
작성
·
268
답변 2
0
0
이승주
질문자
<routes/user.js>
const express = require("express");
const router = express.Router();
const bcrypt = require("bcrypt");
const passport = require("passport");
const { User, Post, Image, Comment } = require("../models");
router.post("/login", (req, res, next) => {
passport.authenticate("local", (err, user, info) => {
if (err) {
console.error(err);
//서버 에러
return next(err);
}
if (info) {
return res.status(401).send(info.reason);
}
return req.login(user, async (loginErr) => {
if (loginErr) {
console.error(loginErr);
return next(loginErr);
}
const fullUserWithoutPassword = await User.findOne({
where: { id: user.id },
attributes: {
exclude: ["password"],
},
include: [
{
model: Post,
},
{
model: User,
as: "Followings",
},
{
model: User,
as: "Followers",
},
],
});
return res.status(200).json(fullUserWithoutPassword);
});
})(req, res, next);
});
router.post("/", async (req, res, next) => {
try {
const exUser = await User.findOne({
where: {
email: req.body.email,
},
});
if (exUser) {
return res.status(403).send("이미 사용 중인 아이디입니다.");
}
const hashedPassword = await bcrypt.hash(req.body.password, 12);
await User.create({
email: req.body.email,
nickname: req.body.nickname,
password: hashedPassword,
});
res.status(201).send("ok");
} catch (error) {
console.error(error);
next(error); // status 500
}
res.send("ok");
});
router.post("/logout", (req, res) => {
req.logout();
req.session.destroy();
res.send("ok");
});
module.exports = router;







회원가입 코드에서 마지막 res.send('ok') 빼세요. res.send를 두 번 호출하면 저 에러가 발생합니다. 그래서 이 때 서버가 터져서 로그인때도 에러가 난 겁니다. res.send나 res.json은 한 번만 호출되어야합니다.