Skip to content

Sequelize 데이터 처리 방법

J154_이윤성 edited this page Nov 15, 2021 · 1 revision

Sequelize를 사용하여 데이터베이스에서 뽑아낸 데이터들은 각 테이블의 타입을 가지고 있었습니다.

그래서 뽑아낸 데이터들을 저희가 원하는대로 처리하는 과정이 타입스크립트에서 매우 힘들었습니다.

저희는 2가지 방법을 사용하여 주로 데이터를 처리하였습니다.

1. AS 사용

  const query_to = {
    attributes: ["from", "to", "state"],
    include: [
      {
        model: Users,
        as: "info",
        attributes: [["uid", "id"], "image", "location", "sex", "age", "info"],
      },
    ],
    where: {
      to: uid,
    },
  };
  const result_to = await Request.findAll(query_to as object);

2. 새로운 객체 생성

export const findTeam = async ({ gid }: { gid: number }) => {
  const query = {
    raw: true,
    where: { gid },
    include: [
      {
        model: Users,
        as: "member",
        attributes: ["uid", "image", "location", "age", "sex"],
      },
    ],
  };

  const teamInfos = await Team.findAll(query as object);
  const memberInfo = (teamInfos as unknown as infoAttribute[]).map((info: infoAttribute) => {
    return { id: info["member.uid"], image: info["member.image"], location: info["member.location"], age: info["member.age"], sex: info["member.sex"] };
  });
  • 그런데 위의 방법이 맞다는 확신이 들지 않아 멘토님께 조언을 구하고 싶습니다.
Clone this wiki locally