웹프로그래밍/node.js
사용자 조회 API 성공, 실패시
hyun_jo_o
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를 만들어냄