-
사용자 수정 API 성공, 실패시웹프로그래밍/node.js 2019. 6. 3. 19:03
PUT /users/:id
성공
- 변경된 name을 응답한다
실패
- 정수가 아닌 id일 경우 400 응답
- name이 없을 경우 400 응답
- 없는 유저일 경우 404 응답
- 이름이 중복일 경우 409 응답
index.spec.js 코드 추가
describe('PUT /users/:id', ()=> { describe('성공시', ()=> { it('변경된 name을 응답한다', (done)=> { // 비동기면 done을 써줘야함 const name = 'chally'; request(app) .put('/users/3') .send({name}) .end((err, res)=> { res.body.should.have.property('name', name); done(); }); }); }); describe('실패시', ()=> { it('정수가 아닌 id일 경우 400 응답', (done)=> { //비동기에 대한 처리 request(app) .put('/users/one') .expect(400) .end(done); }); it('name이 없을 경우 400 응답', done=> { //비동기에 대한 처리 request(app) .put('/users/1') .expect(400) .end(done); }); it('없는 유저일 경우 404 응답', done=> { //비동기에 대한 처리 request(app) .put('/users/999') .send({name: 'foo'}) .expect(404) .end(done); }); it('이름이 중복일 경우 409 응답', done=> { //비동기에 대한 처리 request(app) .put('/users/3') .send({name: 'bek'}) .expect(409) .end(done); }); }); });
index.js 코드 추가
app.put('/users/:id', (req, res) => { const id = parseInt(req.params.id, 10); if(Number.isNaN(id)) return res.status(400).end(); const name = req.body.name; // name을 받는 부분 if(!name) return res.status(400).end(); const isConflict = users.filter(user => user.name === name).length; if(isConflict) return res.status(409).end(); const user = users.filter(user=> user.id === id)[0]; // 유저를 찾는 부분 if(!user) return res.status(404).end(); user.name = name; res.json(user); })
실행 결과
'웹프로그래밍 > node.js' 카테고리의 다른 글
path모듈 && url모듈 && crypto모듈 (0) 2019.08.07 데이터베이스 (0) 2019.06.04 사용자 추가 API 성공, 실패시 (0) 2019.06.03 사용자 삭제 API 성공, 실패시 (0) 2019.06.03 사용자 조회 API 성공, 실패시 (0) 2019.06.03 댓글