API로 단어 검색 시 여러 값 추가(mysql 연결)

개발공부·2022년 12월 16일
0

* 결과

1) "추위" 검색 시 cold, chill 두 개 입력됨

2) "행운" 검색 시 luck, fortune 두 개 입력됨

* 핵심

1) 여러 단어가 나왔을 때 똑같은 뜻에 여러 영단어 추가하는 것

▶ 배열에 여러 객체 값을 추가

const array = [
	{name: "A"},
    {name: "B"},
    {name: "C"},
]
const data = [{name: "A2"}, {nam: "B2"}]

최종적으로 원하는 배열(array) 결과
[
  {name: "B2"},
  {name: "A2"},
  {name: "A"},
  {name: "B"},
  {name: "C"},
]

1) (오답)
array.push(data) 
//결과
[
  {name: "A"},
  {name: "B"},
  {name: "C"},
  Array(2) 
  => [{name: "A2"},{name: "B2"},]
]

2) (정답)
data.map((d) => {
	array.unshift(d)
})
//결과
[
  {name: "B2"},
  {name: "A2"},
  {name: "A"},
  {name: "B"},
  {name: "C"},
]

2) 같은 한글 단어 검색 시 여러 값이 data로 나와야 함

ex) 추위 검색 시 cold, chill이 검색결과로 나오면
추위 : cold, 추위 : chill로 저장해야 함
-> findAll

router.post("/", isLoggedIn, async (req, res, next) => {
  try {
    const word = await Word.create({
      english: req.body.english,
      korean: req.body.korean,
      type: req.body.type,
      UserId: req.user.id,
    });
    const fullWord = await Word.findAll({
      where: { korean: word.korean },
    });
    console.log("fullWord", fullWord);
    res.status(201).json(fullWord);
  } catch (error) {
    console.error(error);
    next(error);
  }
});

3) "추위" 검색 시 cold; chill로 나오면 "; "를 기준으로 분리해야 함

  • split 이용
    :여러 개의 문자열로 나눔

split 예시
const word = "진짜 춥다; 엄청나네; 장난 아니다"
const result = word?.split("; ")
console.log(result) //['진짜 춥다', '엄청나네', '장난 아니다']

  if (resultEng.includes(";")) { //;가 있는 경우
        const splitEnglish = resultEng?.split("; ");
        splitEnglish.map((eng) => {
          const english = eng;
          dispatch(
            addWordRequest({
              english,
              korean,
              type,
            })
          );
        });
      } else {
        const english = resultEng;
        dispatch(
          addWordRequest({
            english,
            korean,
            type,
          })
        );
      }
    },
profile
개발 블로그, 티스토리(https://ba-gotocode131.tistory.com/)로 갈아탐

0개의 댓글