작성
·
215
0
얘네들 추가하기 전까지는 오류없이 잘 되는데 추가하고 나서는 위 사진처럼 저런 에러들이 뜨네요....
아무리 찾아봐도 뭐가 문제인지 모르겠어서 질문남깁니다.
답변 5
1
1
0
소스코드 전체 흐름을 모르면 저도 에러 잡기가 어렵습니다. 혹시나 catch 부분에 console.error(err)가 빠져있는 부분이 있으면 넣고 실행하셔야 에러가 뜹니다.
0
리듀에서에서 me: action.data를 하면 데이터가 안들어 오는 것 같습니다.
dummy데이터를 넣으면 잘 작동하는데.......
코드 똑같이 쳤는데 어느 부분이 잘못된건지 모르겠네요..
0
routes/user.js 코드
const express = require("express");
const db = require("../models");
const bcrypt = require("bcrypt");
const passport = require("passport");
const Router = express.Router();
Router.get("/", (req, res) => {});
Router.post("/", async (req, res, next) => {
try {
const exUser = await db.User.findOne({
where: { userId: req.body.userId }
});
if (exUser) {
return res.status(403).send("이미 사용 중인 아이디입니다.");
}
const hashedPassword = await bcrypt.hash(req.body.password, 12);
const newUser = db.User.create({
userId: req.body.userId,
nickname: req.body.nickname,
password: hashedPassword
});
console.log(newUser);
return res.status(200).json(newUser);
} catch (e) {
console.error(e);
return next(e);
}
});
Router.post("/logout", (req, res) => {
req.logout();
req.session.destroy();
res.send("로그아웃 성공");
});
Router.post("/login", (req, res, next) => {
// POST /api/user/login
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 => {
try {
if (loginErr) {
return next(loginErr);
}
const fullUser = await db.User.findOne({
where: { id: user.id },
include: [
{
model: db.Post,
as: "Posts",
attributes: ["id"]
},
{
model: db.User,
as: "Followings",
attributes: ["id"]
},
{
model: db.User,
as: "Followers",
attributes: ["id"]
}
],
attributes: ["id", "nickname", "userId"]
});
console.log(fullUser);
return res.json(fullUser);
} catch (e) {
next(e);
}
});
})(req, res, next);
});
module.exports = Router;
passport/index.js 코드입니다.
const passport = require("passport");
const db = require("../models");
const local = require("./local");
module.exports = () => {
passport.serializeUser((user, done) => {
return done(null, user.id);
});
passport.deserializeUser(async (id, done) => {
try {
const user = await db.User.findOne({
where: { id },
include: [
{
model: db.Post,
as: "Posts",
attributes: ["id"]
},
{
model: db.User,
as: "Followings",
attributes: ["id"]
},
{
model: db.User,
as: "Followers",
attributes: ["id"]
}
]
});
return done(null, user); // req.user
} catch (e) {
console.error(e);
return done(e);
}
});
local();
};
어디가 잘못된걸까요?? 깃헙에서 붙여넣기를 했는데도 똑같이 에러가 뜹니다...
찾아보려해도 잘 모르겠습니다...