Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 이벤트 수식어
- vue 지역 컴포넌트
- 다른컴퓨터에서 git사용
- 리스트 렌더링
- SCSS use
- vue 이벤트 수신
- 프로그래머스 데브코스
- vuex map
- KDT 프로그래머스
- 리액트
- react next
- SCSS forward
- Spacer
- KDT 프로그래머스 데브코스 프론트엔드
- 프로그래머스 데브코스 프론트엔드
- flex
- SCSS extend
- Vue
- vue mixin
- 프로그래머스 프론트엔드 데브코스
- SCSS import
- nextjs사용법
- intersection opserver
- 폼 입력 바인딩
- 프로그래머스 K_Digital Training
- 고양이 사진 검색기
- git 같은계정 다른 컴퓨터
- 쌓임맥락
- netlify redirect
- postcss
Archives
- Today
- Total
혼자 적어보는 노트
[Node.js] sequelize 연관된 데이터 합쳐서 불러오기 / attributes, include 본문
로그인 시 DB에서 유저의 ID를 조회하여
유저의 정보를 전달 해주었는데
유저의 데이터는 사용자의 입력으로 생성된 email, nickname, password뿐이며
이 정보만 전달해서 보낼 경우 유저가 올린 게시글 정보 등 연관된 데이터는 알 수가 없다.
또한, password는 프론트로 보내서 state에 저장할 필요가 없다.
즉, front에 데이터를 보내기 전에
뺄 건 빼고 추가할 건 추가해서 보내주어야 한다.
const userData = await User.findOne({
where: { id: user.id },
attributes: {
exclude: ["password"], // user데이터에서 password만 빼고 가져오기
},
include: [
// 추가로 포함시킬 데이터, as를 사용했을 경우 as정보도 입력해주어야 한다.
{ model: db.Post },
], // Post
});
return res.status(200).json(userData);
});
특정 column 가져오기
attributes: ["가지고오고싶은 column이름", "...", "..."]
특정 column을 제외해서 가져오기
attributes: {
exclude: ["제외할 column 이름"]
}
include를 사용하면 이전에 관계설정을 해놓은 대로 가져와지는데
db.User.hasMany(db.Post);으로 연결시켜 놓은
Post를 가지고온다.
login router 코드
router.post(
"/login",
(req, res, next) => {
passport.authenticate("local", (err, user, info) => {
if (err) {
console.log(error);
return next(error);
}
if (info) {
return res.status(401).send(info.reason);
}
return req.login(user, async (loginErr) => {
if (loginErr) {
console.log(loginErr);
return next(loginErr);
}
const userData = await User.findOne({
where: { id: user.id },
attributes: {
exclude: ["password"],
},
include: [
{ model: db.Post },
],
});
return res.status(200).json(userData);
});
})(req, res, next);
}
);
'NodeJS' 카테고리의 다른 글
[Node.js] 로그인 이후 서버 요청 시 에러 발생 해결 (0) | 2022.04.10 |
---|---|
[Node.js] 중복 로그인 검사 미들웨어 / middleware (0) | 2022.03.21 |
[Node.js] bcrypt로 암호화 (0) | 2022.03.18 |
[Node.js] sequelize 관계 설정(association)하기 / 1:1 / 1:M / N:M (0) | 2022.03.17 |
[Node.js] NodeJS에 MySQL 연결하기 / Sequelize (0) | 2022.03.17 |
Comments