테스트주도개발(TDD)로 만드는 NodeJS API 서버

테스트주도개발(TDD)로 만드는 NodeJS API 서버

(79개의 수강평)

975명의 수강생
Back-EndNode.jsTDDExpressREST API
29,700원
지식공유자 · 김정환
60회 수업· 총 3시간 49분수업
평생 무제한 시청
수료증 발급 강의
수강 난이도 중급이상
oung1002 프로필

window mocha 환경 실행 오류 oung1002 13일 전
node_modules/.bin/mocha utils.spec.js를 치면,  node_modules/.bin/mocha : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\ds\Desktop\node.js  \4_TDD\macha\node_modules\.bin\mocha.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution  _Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오. 위치 줄:1 문자:1 + node_modules/.bin/mocha utils.spec.js + ~~~~~~~~~~~~~~~~~~~~~~~     + CategoryInfo          : 보안 오류: (:) [], PSSecurityException     + FullyQualifiedErrorId : UnauthorizedAccess 라고 뜨는데 왜 그런지 모르겠습니다. 경로 등은 모두 영상과 동일합니다.

1
꿈의팝송 프로필

요청객체와 응답객체 슬라이드 오타 꿈의팝송 1달 전
응답 객체 슬라이드의 * req.send(), req.status(), req.json() 메소드를 주로 사용한다. 가 * res.send(), res.status(), res.json() 메소드를 주로 사용한다. 로 바뀌어야 할 것 같습니다.

1
꿈의팝송 프로필

블로그 링크가 변경되었어요 꿈의팝송 1달 전
이벤트기반 비동기 I/O 섹션의 스크립트에 보면 '더 자세한 내용은 여기로' 라는 링크가 있는데, 링크가 깨져 있습니다.

0
Junhee Park 프로필

터미널 스타일러 Junhee Park 3달 전
안녕하세요, 강의 잘듣고 있습니다. ㅎㅎ  혹시 강의에 나오는 맥 터미널에 설치하신 터미널 스타일러가 어떤것인지 궁금합니다!

2
Darcie 프로필

express 4.x 에서는 body parser를 기본으로 제공하고 있습니다. Darcie 3달 전
http://expressjs.com/ko/4x/api.html#req.body express모듈이 require로 불러와져 있다면 미들웨어는 아래와같이 가져오시면 됩니다. app.use(express.json()) // for parsing application/json app.use(express.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded

0
Rorschach 프로필

자바스크립트 자동완성 질문 Rorschach 3달 전
저는 자동완성이 뜨질 않는데 혹시 어떤걸 세팅해야할까요??

0
purea0914 프로필

id와 관련한 부분은 데이터베이스에 저장을 한 적이 없는 것 같은데 purea0914 3달 전
id와 관련한 부분은 데이터베이스에 저장을 한 적이 없는 것 같은데, 이 부분은 자동으로 생성이 되는 건가요?

1
shhan730@gmail.com 프로필

코드 관련 문의 shhan730@gmail.com 5달 전
강의중 작성하신 코드를 혹시 github에 공개해 주실수 있을까요?감사합니다.

1
Hyunsang Han 프로필

update는 연동이 잘 안되네요 ㅠ Hyunsang Han 6달 전
써주신 로직 그대로 따랐는데(상세한 코드는 좀 다르게 쓰긴 했지만) 작동이 안되어요. user.name === name 이 true가 나오고 있고, unique설정도 모델에서 해줬는데 말입니다. 문제가 뭘까요?ㅠ const update = (req, res) => { const id = parseInt(req.params.id, 10) const name = req.body.name; if (!name || Number.isNaN(id)) return res.status(400).end(); // models.User.update를 써도 되지만 아래와 같이 findOne과 save()를 쓸 수도 있음 models.User.findOne({ where: { id } }) .then(user => { if (!user) return res.status(404).end(); user.name = name; user.save() .then(() => { res.status(203).json(user); }) .catch(err => { if (err.name = 'SequelizeUniqueConstraintError') { return res.status(409).end(); } res.status(500).end(); }) }) };

0
Hyunsang Han 프로필

데이터베이스 싱크에 대해 조금만 설명 더 부탁드립니다. Hyunsang Han 6달 전
(진짜 강의 너무너무 유익하게 잘 듣고 있습니다.  제가 들어본 인프런 강의 중 최고예요.) 근데, 데이터베이스 관련해서는 살짝 더 설명주시면 좋을 것 같습니다. - 데이터베이스와 ORM을 연결?한다는 게 무슨 뜻인지 - 싱크가 무엇이며 왜 하는 것인지(이번 강의에서 매 테스트수트마다 새로 데이터 싱크 과정을 추가했는데, 이렇게 매 테스트마다 수동으로 추가하는 과정이 약간 제가 생각했던 DB의 느낌과 다른 것 같아서요) 위 부분들에 대해 살짝 찝찝하게 넘어갔는데, 답변 달아주시면 대단히 감사하겠습니다.(강사님 아니어도 아시는 수강생분은 답변 부탁드릴게요!)

2
이충만 프로필

혹시 이 부분은 nodejs만의 특징인가요? 이충만 7달 전
아니면 혹시 자바스크립트의 특징으로 보아도 무방할까요?

1
Dot Support 프로필

HTTP Request 값이 2초가 넘어 갈때의 해결법 Dot Support 11달 전
Get요청으로 해당 HTTP를 긁어오는 테스트를 하려고 하는데 모카 테스트에서 2초가 넘어갔다는 이유로 계속 실패합니다. 해결방법이 있나요?

1
Jiwon 프로필

Wrapping 의 뜻이 잘 이해가 안 갑니다. Jiwon 2019.06.14
app.get('/', function(req, res){ res.send('Hello World!'); });   이 부분에서 http 의 req, res를 한번 wrapping 한 express의 객체라고 하셨는데 그 의미가 이해가지 않습니다 ㅜㅜ 

1
참참이 프로필

spec 파일이 여러 개 일 때! 참참이 2019.04.15
패쓰가 늘어나면서 spec 파일도 늘어났을 때파일들의 관리와 테스트 수행은 어떻게 하나요?

1
엄창용 프로필

TDD 슈퍼테스트2 강의 중 엄창용 2019.04.15
이리저리 찾아보는데도 모르겠어서 질문드립니다.모듈에서 가져온 기능을 못 찾는 거 같은데 원인을 모르겠습니다ㅠㅠWeb Strom을 사용하고 있습니다.1) GET /users는...:TypeError: app.daddress is not a functionat Test.serverAddress (node_modulessupertestlibtest.js:55:18)at new Test (node_modulessupertestlibtest.js:36:12)at Object.obj.(anonymous function) [as get] (node_modulessupertestindex.js:25:14)at Context.it (index.spec.js:7:14)//index.jsconst express = require('express');const morgan = require('morgan');const app = express();const users = [ {id: 1, name: 'alice'}, {id: 2, name: 'bek'}, {id: 3, name: 'mike'}];app.use(morgan('dev'));app.get('/', function (req, res){ res.send('Hello World!');});app.get('/users', function (req,res) { res.json(users);});app.post('/users', function (req,res) { res.send(user)});app.listen(3000, function(){ console.log('Example app listening on port 3000!');});module.exports = app;//index.spec.jsconst app = require('./index');const request = require('supertest');describe('GET /users는', ()=>{ it('...', (done)=>{ request(app) .get('/users') .end((err, res)=>{ console.log(res.body); done(); }) })})

2
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스