ABOUT ME

-

  • 사용자 조회 API 성공, 실패시
    웹프로그래밍/node.js 2019. 6. 3. 17:28

    성공

    • id가 1인 유저 객체를 반환한다.

    실패

    • id가 숫자가 아닐 경우 400으로 응답한다
    • id로 유저를 찾을 수 없을 경우 404로 응답한다

    index.spec.js 코드 추가

    describe('GET /users/1는', ()=> {
        describe('성공시', ()=> {
            it('id가 1인 유저 객체를 반환한다', (done)=> {        //비동기에 대한 처리
                request(app)
                    .get('/users/1')
                    .end((err, res)=> {
                        res.body.should.have.property('id', 1);   // id가 1인지 검증하는 코드
                        done();
                    });
            });
        });
        describe('실패시', ()=> {
            it('id가 숫자가 아닐 경우 400으로 응답한다', (done)=> {        //비동기에 대한 처리
                request(app)
                    .get('/users/one')
                    .expect(400)
                    .end(done);
            });
            it('id로 유저를 찾을 수 없을 경우 404로 응답한다', (done)=> {        //비동기에 대한 처리
                request(app)
                    .get('/users/999')
                    .expect(404)
                    .end(done);
            });
        });
    });

     

    index.js코드 추가

    app.get('/users/:id', function(req, res) {
        const id = parseInt(req.params.id, 10);
        if(Number.isNaN(id)) return res.status(400).end();      //숫자가 아닌 경우 400으로 응답
        
        const user = users.filter((user) => user.id === id)[0];      //filter는 array니까 [0]에 접근해야된다.
        if(!user) return res.status(404).end();         //id로 유저를 찾을 수 없는 경우
        
        res.json(user);
    });

    실행 결과

    ▶ filter 특정 조건에 해당하는 값을 다시 반환해서 새로운 array를 만들어냄

    '웹프로그래밍 > node.js' 카테고리의 다른 글

    댓글

Designed by Tistory.