์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |
- ์ฝ๋๋ธ๋ญ
- markdown
- ๋ธ๋์น ์ญ์
- ๋ธ๋์น ํ์ธ
- branch ์ญ์
- ๋ธ๋์น ์์ฑ
- branch ์์ฑ
- branch ํ์ธ
- ![rejected]
- ์ฝ๋๋ธ๋ก
- ๋งํฌ๋ค์ด
- Git๋ช ๋ น์ด
- Today
- Total
DevLog
[โ๏ธ Project Dev Log] 2022-01-12 ๋ณธ๋ฌธ
[โ๏ธ Dev Log] 2022-01-12
์ค๋์ ์ด๋ป๊ฒ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋์?
- admin: ํ์ธํ lounge report ์ญ์ ๊ธฐ๋ฅ ์ถ๊ฐ
- model assosiate ์ด์ฉํ์ฌ ํน์ lounge๋ฅผ ๋ฆฌํํ ๋ง
์ค๋์ ํ๋ก์ ํธ์์ ํ๋ ์ ๋๋ ๊ธฐ์ต์ ๋จ๋ ์ ์ ๋ฌด์์ธ๊ฐ์?
- ์ฝ๋์๋ ์ ๋ต์ด ์๋ค & ์๋ฌ์ฒ๋ฆฌ๋ ํ์คํ๊ฒ
์ด์ sequelize model๋ค ๊ฐ์ ๊ด๊ณ์ค์ ์ ํด์ค ๋ค, ๋ชจ๋ธ์ ํ๋ฒ์ ์ฟผ๋ฆฌ๋ฅผ ํตํด ์์ ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์๋ ๋ ๋ฒ์ ๊ฑธ์ณ ์ฟผ๋ฆฌ ํด์ฃผ๋ ์ฝ๋๋ฅผ ์ฐพ์ ์๋กญ๊ฒ ํ ๋ฒ์ ์ฟผ๋ฆฌ๋ฅผ ํตํด ์์ ์ ๋๋ผ ์ ์๊ฒ ๋ฆฌํํ ๋ง ํด๋ณด๊ธฐ๋ก ํ๋ค.
lounge // ์ฌ๊ธฐ์ ์ฒซ ๋ฒ์งธ ์ฟผ๋ฆฌ
.findOne({
where: { id: req.params.loungeId },
})
.then((data) => {
const { image, address, avgRating } = data.dataValues;
comment // ์ฌ๊ธฐ์ ๋ ๋ฒ์งธ ์ฟผ๋ฆฌ
.findAll({
where: { loungeId: req.params.loungeId },
attributes: ["userId", "contents", "rating", "createdAt"],
})
.then((data) => {
const newData = data.map((element) => element.dataValues);
console.log(newData);
return res.status(200).send({
data: { image, address, avgRating, comments: newData },
});
});
});
์ด ์ฝ๋๊ฐ ๊ธฐ์กด์ ์์ฑ๋ ์ฝ๋์๋๋ฐ lounge์์ ํ ๋ฒ ์ฟผ๋ฆฌํ๊ณ comment์์ ๋ ํ ๋ฒ ์ฟผ๋ฆฌํ๋ ์์ผ๋ก ์์ฑ๋์ด ์์๋๋ฐ ์ด ๋ถ๋ถ์ include ์ต์ ์ ์ฌ์ฉํด์ ํ ๋ฒ์ ์ฒ๋ฆฌํด์ฃผ๋ ์ฝ๋๋ก ์๋กญ๊ฒ ์์ฑํด๋ดค๋ค
lounge
.findOne({
where: {
id: req.params.loungeId,
},
include: {
model: comment,
require: true,
where: {
loungeId: req.params.loungeId,
},
},
})
.then((data) => {
const { image, address, avgRating } = data.dataValues;
const comments = data.dataValues.comments.map((element) => {
return {
userId: element.dataValues.userId,
contents: element.dataValues.contents,
rating: element.dataValues.rating,
createdAt: element.dataValues.createdAt,
};
});
console.log(comments);
return res
.status(200)
.send({ data: { image, address, avgRating, comments } });
});
์ด๋ฐ์์ผ๋ก ์์ฑ ํ๋๋ฐ ์ฌ์ฉํ๋ฉด์ ๋๋์ ์ด ์ฝ๋ ๊ธธ์ด๋ ๋์ด๋๊ณ ๋ณต์กํด์ง๋ ๋๋์ด์๋ค.
ํ์ฅ์ฑ์ด ์๋ ์๋น์ค๋ฅผ ๋ง๋ ๋ค๋ฉด ์ดํ์ ๊ด๊ณ๊ฐ ๋ ๋ณต์กํด์ง ๋ ์ฅ์ ์ด ์์ ์ ์๊ฒ ์ง๋ง ์ง๊ธ ํ๋ก์ ํธ๋ก ์งํ์ค์ธ ์ ๋์ ๋ณต์ก๋๋ฉด ๊ธฐ์กด์ ๋ ๋ฒ์ ๊ฑธ์ณ ์ฟผ๋ฆฌํ๋ ์์ ์ฝ๋๊ฐ ๋ ๊ฐ๋
์ฑ๋ ์ข๊ณ ์๋ฌํธ๋ค๋ง ํ๊ธฐ๋ ์ข์ ๊ฒ ๊ฐ์๋ค.
(๋ด๊ฐ ์ ๋๋ก ๊ด๊ณ๋ฅผ ์ด์ฉํ ์ฟผ๋ฆฌ๋ฅผ ์ ํ์ง ๋ชปํด ์ด๋ ๊ฒ ๋๋ผ๋ ๊ฑธ ์๋ ์์ ...)
์๋ก ๋ฆฌํํ ๋งํ๋ฉด์ ๊ธฐ์กด์ ๋ฐ์ํ์ง ์์๋ ์ค๋ฅ๋ค์ด ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ ํ ๋ ์๊ฒจ์ ์๋ฌ์ฒ๋ฆฌ๋ฅผ ์๋ก ์ถ๊ฐํด์ค์ผํ๋ ๋ถ๋ถ๋ค์ด ์๊ฒผ๋ค
TypeError: Cannot read properties of null (reading 'dataValues')
<= ์ด๋ฐ ๋ถ๋ถ๋ค
์ค๋ ๋ ๋ฒ ์ด์ ๋ฐ์ํ ์๋ฌ๊ฐ ์ด ๋ถ๋ถ์ธ๋ฐ ๋ฐ์ํ ์ด์ ๋,
ํ
์คํธ๋ฅผ ํ ๋ ๋ฐ์ดํฐ๊ฐ ์๋ ์ํฉ์์๋ง ํ
์คํธ๋ฅผ ํด์ ๋ฐ์ดํฐ๊ฐ null๊ฐ์ผ ๋ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ค๋ ์ ์ ๊ฐ๊ณผํ๊ณ ์ฝ๋๋ฅผ ์ง์ ์๊ธด ๋ฌธ์ ์๋ค.
์ด ๋ถ๋ถ์ ์ฝ๋๋ฅผ ์งค ๋ ํญ์ ์ผ๋์ ๋๊ณ ์งํํด์ผ๊ฒ ๋ค.
๋ด์ผ์ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ธฐ ์ํด ๋ฌด์์ ํด์ผ ํ๋์?
- ์๋ฌ์ฒ๋ฆฌ ๋๋ด๊ณ null๊ฐ์ธ ์ํ์์ ํ ์คํธ ์งํ
- aws ๋ฐฐํฌ ์ฐ์ต
'๐ Project - Dev Log' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[โ๏ธ Project Dev Log] 2022-01-14 (0) | 2022.01.13 |
---|---|
[โ๏ธ Project Dev Log] 2022-01-11 (0) | 2022.01.11 |
[โ๏ธ Project Dev Log] 2022-01-10 (0) | 2022.01.10 |
[โ๏ธ Project Dev Log] 2022-01-08 (0) | 2022.01.08 |
[โ๏ธ Project Dev Log] 2022-01-07 (0) | 2022.01.08 |