해시태그 검색관련 질문있습니다.
자주 질문을 드려 죄송합니다. ㅠㅠ 모르는게 많아서 ㅠㅠ
그 해시태그 부분을 작업 하고 있는데 제가 해시태그를 클릭하게 되면 예를 들러 123123을 클릭을 한다 라고 하면
기존 아래에서 
검색이 될시 
이런식으로 해시태그가 123123만 나오고 나머지 것들은 안나오는 현상이 나오고 있습니다.
코드 같은 경우는 알려주신데로
router.get("/:hashtag", async (req, res, next) => {
try {
const users = req.user ? req.user.id : null;
const offset = (parseInt(req.query.page) - 1) * 10 || 0
const {
count,
rows: post
} = await Post.findAndCountAll({
offset: offset,
limit: 10,
// DESC 최신순 ASC 오래된순
order: [
["createdAt", "DESC"]
],
include: [
{
model: Hashtag,
where: {
hashtag: req.params.hashtag
},
attributes: ["hashtag"],
through: {
attributes: []
},
}, {
model: Image,
attributes: ["src"],
},{
model: User,
attributes: ["nickName"],
}],
attributes: [
"id",
"title",
"createdAt",
"view",
"content",
// 좋아요 수
[Sequelize.literal("(SELECT COUNT(*) FROM `Like` WHERE `Like`.`postId` = `Post`.`id`)"), "count"],
// 좋아요 여부
[Sequelize.literal("IF((SELECT `postId` FROM `Like` WHERE `Like`.`postId` = `Post`.`id` AND `Like`.`userId` = " + users + "), 1, 0)"), "like"],
],
})
const posts = post.map((post) => {
const format = post.toJSON()
format.hashtag = format.Hashtags.map((tag)=>tag.hashtag)
format.src = format.Images.map((img) => img.src).join("")
format.nickname = format.User.nickName
format.content = format.content.replace(/<[^>]+>|<img.*?>/g, "");
delete format.Images;
delete format.User;
delete format.Hashtags;
return format;
})
res.status(201).json({
count,
posts
})
} catch (error) {
console.error(error)
next(error)
}
})이렇게 작성을 하였는데 찾아 보니
where: { hashtag: req.params.hashtag },
이렇게 작성을 하게 되면 해당 해시태그에 해당하는 게시물이 불러와 지기는 하는데 검색된 해시태그만 뽑아서 나타나지게 되니
where: {
hashtag: {
[Op.contains]: [`${req.params.hashtag}`]
}
},이런식으로 작성을 하면 된다고 해서 써봣는데
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''asd' LEFT OUTER JOIN Images AS Images ON Post.`id` = Images.`PostId` LE' at line 1",
sql: "SELECT count(`Post`.`id`) AS count FROM Posts AS Post INNER JOIN ( PostHashtag AS Hashtags->PostHashtag INNER JOIN Hashtags AS Hashtags ON Hashtags.`id` = Hashtags->PostHashtag.`HashtagId`) ON Post.`id` = Hashtags->PostHashtag.`PostId` AND Hashtags.`hashtag` <@ 'asd' LEFT OUTER JOIN Images AS Images ON Post.`id` = Images.`PostId` LEFT OUTER JOIN Users AS User ON Post.`UserId` = User.`id`;",
이런 에러가 나더라구요... 왜 images에 관련된 문구가 나오는지는 모르겟지만.... 혹시 mysql에서 contains메소드가 사라진건지 아닌지 혹시 고칠수 잇는건지 궁금합니다.
제 sequelize 버전은 6.35.2 입니다. ㅠㅠ
답변 1
넥스트 버젼 질문
0
78
2
로그인시 401 Unauthorized 오류가 뜹니다
0
89
1
무한 스크롤 중 스크롤 튐 현상
0
175
1
특정 페이지 접근을 막고 싶을 때
0
103
2
createGlobalStyle의 위치와 영향범위
0
96
2
인라인 스타일 리렌더링 관련
0
91
2
vsc 에서 npm init 설치시 오류
0
146
2
nextjs 15버전 사용 가능할까요?
0
158
1
화면 새로고침 문의
0
121
1
RTK에서 draft, state 차이가 있나요?
0
153
2
Next 14 사용해도 될까요?
0
452
1
next, node 버전 / 폴더 구조 질문 드립니다.
0
349
1
url 오류 질문있습니다
0
211
1
ssh xxxxx로 우분투에 들어가려니까 port 22: Connection timed out
0
373
1
sudo certbot --nginx 에러
0
1275
2
Minified React error 콘솔에러 (hydrate)
0
470
1
카카오 공유했을 때 이전에 작성했던 글이 나오는 버그
0
247
1
프론트서버 배포 후 EADDRINUSE에러 발생
0
327
1
npm run build 에러
0
518
1
front 서버 npm run build 중에 발생한 에러들
0
382
1
서버 실행하고 브라우저로 들어갔을때 404에러
0
338
2
css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.
0
288
1
팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.
0
239
2
해시태그 검색에서 throttle에 관해 질문있습니다.
0
201
1





