inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

조현영님께서는 switch 구문을 사용하는것에 대해 어떻게 생각하시나요?

152

이승훈

작성한 질문수 49

0

라우트 매개변수를 활용해서 url에 데이터베이스의 id 컬럼값을 입력하면 그 id 컬럼에 해당하는 로우를 보여주는 라우터를 스위치 구문을 사용해서 나타내보았습니다.

router.get("/:id/info", async (req, res, next) => {
    try {
        let productInfo = await Product.findAll({});
    
        switch (req.params.id) {
            case "1":
                productInfo = productInfo[1];
                break;
            case "2":
                productInfo = productInfo[2];
                break;
            case "3":
                productInfo = productInfo[3];
                break;
            case "4":
                productInfo = productInfo[4];
                break;
            case "5":
                productInfo = productInfo[5];
                break;
            case "6":
                productInfo = productInfo[6];
                break;
            case "7":
                productInfo = productInfo[7];
                break;
            case "8":
                productInfo = productInfo[8];
                break;
            case "9":
                productInfo = productInfo[9];
                break;
            case "10":
                productInfo = productInfo[10];
                break;
            case "11":
                productInfo = productInfo[11];
                break;

            default:
                res.locals.message = "No more product on that url";
                res.render("noProduct");
                return 0;
        }

        res.locals.id = req.params.id;
        res.locals.productName = productInfo.name;
        res.locals.productPrice = productInfo.price;
        res.locals.productOrigin = productInfo.origin;
        res.locals.productType = productInfo.type;
        res.render("productInfo");
    } catch (err) {
        console.error(err);
        next(err);
    }
});

 

근데 이런 방식의 단점은 id컬럼이 증가할 때마다 제가 수동으로 케이스문을 추가해야 한다는 것입니다. 조현영님께서는 스위치문을 현업에서 사용해보신 경험이 있으신가요? 사용하신다면 어떤 방향으로 사용하시나요?

nodejs mongodb mysql Sequelize

답변 1

0

제로초(조현영)

저 상황은 그냥 productInfo = productInfo[req.params.id] 하면 되는데요? 스위치문이 필요 없습니다. 스위치문은 if문에서 조건문의 비교 대상이 같을 때 종종 씁니다.

0

이승훈

제가 생각이 유연하지 못했네요 감사합니다!

리눅스 노드 설치시 패키지

0

172

0

socket.js 에서 referer로부터 roomId를 가져올 때

0

926

3

스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문

0

2297

2

a[title] 질문드립니다

0

386

1

리뉴얼 강의 및 공부 방법

0

589

1

jwt decode

0

1137

1

node.js 교과서 3판 질문드립니다

0

396

1

passport와 jwt

0

438

1

리뉴얼 강의

0

427

2

혹시 Node.js 교과서 3판 이북은 언제 나오나요?

0

359

1

몽고디비 사용자도 MYSQL부분을 들어야 하나요???

0

488

1

sql 쿼리 로그는 어떤 모듈이 작성하나요?

0

511

2

nunjucks res.render('error'); 작동을 안합니다.

0

518

1

질문있습니다.

0

348

1

multer 한글 파일 업로드시 파일명이 깨져요.

1

3543

1

수업자료는 어디있나요?

0

374

1

질문 있습니디

0

244

1

multer 사용시 file 외 name값은 못받나용?

0

429

1

코드 중복 부분 질문드립니다.

0

303

1

api 만드는 이유 질문드립니다.

0

292

1

Strategy의 done에 대해 질문드립니다.

0

373

1

안녕하세요 fs 권한 관련 질문드립니다

0

455

1

시퀄라이즈 연결질문...

0

510

2

res.setHeader vs res.cookie

0

1797

3