WIL

이건선·2023년 3월 26일
0

해결

목록 보기
16/48
post-custom-banner
  1. sequelize migrate 진행시 pk 설정을 잘 해두지 않으면 오류 발생함

  2. 페이지 네이션 구현

...

const placesSplit = await Places.findAll({
      where: { city }, // 도시 조건 의문 해결 cityID를 지역 쿼리로 생각하자
      order: [["createdAt", "DESC"]], // createdAt 역순으로 정렬
      offset: splitNumber * (splitPageNumber - 1), // * (page - 1) 페이지당 게시글 수만큼 건너뛰기
      limit: splitNumber, // 페이지당 게시글 수만큼 가져오기
      attributes: ["pictures", "name", "star", "placeId"],
    });

...
  1. 삼항조건 연산자 다중사용
...

          pictures: !ele.pictures
            ? ""
            : ele.pictures.substring(0, 4) == "http"
            ? ele.pictures.split(",")
            : [ele.pictures.split(",").slice(0, 2).join(",")],
            
...
  1. 스프레드를 이용한 joi message 사용법
const messages = {
      "string.base": "이 필드는 문자열로 이루어져야 합니다.",
      "string.empty": "이 필드는 비어 있을 수 없습니다.",
      "any.required": "이 필드는 필수입니다.",
    };

    const schema = Joi.object({
      splitPageNumber: Joi.string().messages({
        ...messages,
        "string.base": "cityID 필드는 숫자로 이루어져야 합니다.",
      }),
      city: Joi.string().messages({
        ...messages,
        "string.base": "city 필드는 문자열로 이루어져야 합니다.",
      }),
      splitNumber: Joi.string().messages({
        ...messages,
        "string.base": "splitNumber 필드는 숫자로 이루어져야 합니다.",
      }),
    });

    const validate = schema.validate(
      {
        splitPageNumber: splitPageNumber,
        city: city,
        splitNumber: splitNumber,
      },
      { abortEarly: false }
    );
profile
멋지게 기록하자
post-custom-banner

0개의 댓글