node.js map 호출

김지혜·2023년 6월 21일
0

Node.js

목록 보기
6/13
post-custom-banner

문제

null 값 문제

문제의 코드

const result = goods.map((item) => {
      return {
        goodsId: item.goodsId,
        name: item.name,
        price: item.price,
        thumbnailUrl: item.thumbnailUrl,
        category: item.category,
      };
    });

오류문

$ node app.js
3000 포트로 서버가 열렸어요!
[Object: null prototype] {}
undefined
C:\Users\user\Desktop\SPA_MALL\routes\goods.js:14  
  const result = goods.map((item) => {
                       ^
                       //
TypeError: Cannot read properties of null (reading 
'map')
    at C:\Users\user\Desktop\SPA_MALL\routes\goods.js:14:24
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                      //
Node.js v18.16.0

=> goods 변수가 null -> map 호출이 불가능함.


해결

if 문으로 빈 배열 반환

수정 전

const result = goods.map((item) => {
      return {
        goodsId: item.goodsId,
        name: item.name,
        price: item.price,
        thumbnailUrl: item.thumbnailUrl,
        category: item.category,
      };
    });

수정 후

if (goods === null) {
    res.status(200).json({ goods: [] }); // 빈 배열을 반환하거나, 적절한 기본 값으로 대체
  } else {
    const result = goods.map((item) => {
      return {
        goodsId: item.goodsId,
        name: item.name,
        price: item.price,
        thumbnailUrl: item.thumbnailUrl,
        category: item.category,
      };
    });

=> if 문을 사용 -> goods 변수가 null인 경우, 빈 배열을 반환하도록 처리
= map 함수 호출 및 빈 배열을 클라이언트로 전달

post-custom-banner

0개의 댓글