inflearn logo
강의

Course

Instructor

Node and React series that you can learn by following - Creating a Reddit site (NextJS) (Pages Router)

What is SWR?

routes/subs.ts 의 topSubs 쿼리빌더에서 sql 오류가 자꾸 발생합니다.

625

dongk

21 asked

0

routes/subs.ts 의 topSubs 쿼리빌더에서 sql 오류가 자꾸 발생합니다.

수고 많으십니다

수업 잘 듣고 있습니다

다름이 아니라

const topSubs = async (req: Request, res: Response) => {
  try {
    const imageUrlExp = `COALESCE(s."imageUrn",'https://www.gravatar.com/avatar?d=mp&f=y')`;
    const subs = await AppDataSource.createQueryBuilder()
      .select(
        `s.title, s.name, ${imageUrlExp} as "imageUrl", count(p.id) as "postCount"`
      )
      .from(Sub, "s")
      .leftJoin(Post, "p", `s.name = p."subName`)
      .groupBy('s.title, s.name, "imageUrl"')
      .orderBy(`"postCount"`, "DESC")
      .limit(5)
      .execute();
  } catch (error) {
    console.log(error);
    return res.status(500).json({ error: "문제가 발생하였습니다" });
  }
};

위 소스를 실행하기 위해

http://localhost:4000/api/subs/sub/topSubs

를 실행하면

{"error":"문제가 발생하였습니다"}

같은 에러가 발생하고

세부로그를 보면

QueryFailedError: 구문 오류, "s" 부근
    at PostgresQueryRunner.query (D:\webwork\nextwork\raddit-clone-test-01\server\src\driver\postgres\PostgresQueryRunner.ts:299:19)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async SelectQueryBuilder.execute (D:\webwork\nextwork\raddit-clone-test-01\server\src\query-builder\QueryBuilder.ts:523:20) {
  query: `SELECT "s"."title", "s"."name", COALESCE(s."imageUrn",'https://www.gravatar.com/avatar?d=mp&f=y') as "imageUrl", count("p"."id") as "postCount" FROM "subs" "s" LEFT JOIN "posts" "p" ON "s"."name" = p."subName GROUP BY "s"."title", "s"."name", "imageUrl" ORDER BY "postCount" DESC LIMIT 5`,
  parameters: [],
  driverError: error: 구문 오류, "s" 부근
      at Parser.parseErrorMessage (D:\webwork\nextwork\raddit-clone-test-01\server\node_modules\pg-protocol\src\parser.ts:369:69)
      at Parser.handlePacket (D:\webwork\nextwork\raddit-clone-test-01\server\node_modules\pg-protocol\src\parser.ts:188:21)
      at Parser.parse (D:\webwork\nextwork\raddit-clone-test-01\server\node_modules\pg-protocol\src\parser.ts:103:30)
      at Socket.<anonymous> (D:\webwork\nextwork\raddit-clone-test-01\server\node_modules\pg-protocol\src\index.ts:7:48)
      at Socket.emit (node:events:513:28)
      at Socket.emit (node:domain:489:12)
      at addChunk (node:internal/streams/readable:324:12)
      at readableAddChunk (node:internal/streams/readable:297:9)
      at Socket.Readable.push (node:internal/streams/readable:234:10)    
      at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {   
    length: 90,
    severity: '오류',
    code: '42601',
    detail: undefined,
    hint: undefined,
    position: '220',
    internalPosition: undefined,
    internalQuery: undefined,
    where: undefined,
    schema: undefined,
    table: undefined,
    column: undefined,
    dataType: undefined,
    constraint: undefined,
    file: 'scan.l',
    line: '1192',
    routine: 'scanner_yyerror'
  },
  length: 90,
  severity: '오류',
  code: '42601',
  detail: undefined,
  hint: undefined,
  position: '220',
  internalPosition: undefined,
  internalQuery: undefined,
  where: undefined,
  schema: undefined,
  table: undefined,
  column: undefined,
  dataType: undefined,
  constraint: undefined,
  file: 'scan.l',
  line: '1192',
  routine: 'scanner_yyerror'
}
GET /api/subs/sub/topSubs 500 35.980 ms - 43
QueryFailedError: 구문 오류, "s" 부근
    at PostgresQueryRunner.query (D:\webwork\nextwork\raddit-clone-test-01\server\src\driver\postgres\PostgresQueryRunner.ts:299:19)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async SelectQueryBuilder.execute (D:\webwork\nextwork\raddit-clone-test-01\server\src\query-builder\QueryBuilder.ts:523:20) {
  query: `SELECT "s"."title", "s"."name", COALESCE(s."imageUrn",'https://www.gravatar.com/avatar?d=mp&f=y') as "imageUrl", count("p"."id") as "postCount" FROM "subs" "s" LEFT JOIN "posts" "p" ON "s"."name" = p."subName GROUP BY "s"."title", "s"."name", "imageUrl" ORDER BY "postCount" DESC LIMIT 5`,
  parameters: [],
  driverError: error: 구문 오류, "s" 부근
      at Parser.parseErrorMessage (D:\webwork\nextwork\raddit-clone-test-01\server\node_modules\pg-protocol\src\parser.ts:369:69)
      at Parser.handlePacket (D:\webwork\nextwork\raddit-clone-test-01\server\node_modules\pg-protocol\src\parser.ts:188:21)
      at Parser.parse (D:\webwork\nextwork\raddit-clone-test-01\server\node_modules\pg-protocol\src\parser.ts:103:30)
      at Socket.<anonymous> (D:\webwork\nextwork\raddit-clone-test-01\server\node_modules\pg-protocol\src\index.ts:7:48)
      at Socket.emit (node:events:513:28)
      at Socket.emit (node:domain:489:12)
      at addChunk (node:internal/streams/readable:324:12)
      at readableAddChunk (node:internal/streams/readable:297:9)
      at Socket.Readable.push (node:internal/streams/readable:234:10)    
      at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {   
    length: 90,
    severity: '오류',
    code: '42601',
    detail: undefined,
    hint: undefined,
    position: '220',
    internalPosition: undefined,
    internalQuery: undefined,
    where: undefined,
    schema: undefined,
    table: undefined,
    column: undefined,
    dataType: undefined,
    constraint: undefined,
    file: 'scan.l',
    line: '1192',
    routine: 'scanner_yyerror'
  },
  length: 90,
  severity: '오류',
  code: '42601',
  detail: undefined,
  hint: undefined,
  position: '220',
  internalPosition: undefined,
  internalQuery: undefined,
  where: undefined,
  schema: undefined,
  table: undefined,
  column: undefined,
  dataType: undefined,
  constraint: undefined,
  file: 'scan.l',
  line: '1192',
  routine: 'scanner_yyerror'
}
GET /api/subs/sub/topSubs 500 6.997 ms - 43

와 같습니다.

아무리 봐도 에러 원인을 찾지 못해 이렇게 글을 올립니다

해결방법을 알려주셨으면 합니다.

db는 postgresql 15.1 입니다

감사합니다

react docker postgresql nodejs typescript 클론코딩 Next.js

Answer 1

0

John Ahn

안녕하세요!

. leftJoin(Post, "p", s.name = p."subName)

여기에 "subName" 이렇게 해서 다시 한번 해보시겠어요?!!

뒤에 " 이게 빠져서요 ~

toJson을 추가하면 [sub].tsx에서 sub를 받아오지 못합니다.

0

117

2

쿠키 저장이 되지 않습니다.

0

222

1

AxiosError {message: 'Request failed with status code 401/500', name: 'AxiosError', code: 'ERR_BAD_RESPONSE', (2)

0

580

1

AxiosError {message: 'Request failed with status code 401/500', name: 'AxiosError', code: 'ERR_BAD_RESPONSE',

0

647

1

overload 에러

0

169

1

docker compose up 오류

0

206

1

부록) remark 강의 중 parmas 오류

0

139

1

3000번은 잘 들어가지는데 80번은 안됩니다.

1

292

0

커뮤니티를 올리고 난 후 404 page

0

209

1

tailwind css 문제인지, className 에 적용한 css가 적용되지 않아요.

0

1039

2

tsx 수정 시 마다 빌드 후 서버 시작 해야하나요?

0

651

2

useState 쳤을 때 자동완성 되는 단축키 무엇인가요? extention 인가요?

0

804

2

리액트 서버 npm run dev 와 npm run build 후 npm start 의 차이

0

4589

2

data 폴더가 생성되지 않아요.

0

524

1

docker-compose up 오류

0

814

1

회원 가입 페이지 기능 생성(3) 중 에러

0

379

2

Entity에 toJSON 코드 입력 후 404 에러

0

252

1

context에서 useEffect 선언 부분 질문 있어요.

0

294

1

src 폴더구조

0

509

2

서버 실행 시 에러 관련하여 답변받고 1차 조치했는데 여전하여서 질문 남깁니다

0

298

1

엔티티 모두 작성 후 서버 실행 시 에러가 발생합니다

0

311

1

회원가입 누르면 404에러가 뜹니다 ;-;

1

421

1

nextjs버젼에 대해서 질문드립니다.

0

372

1

<npm run dev>시 -61 에러가 나타납니다!

0

356

1