29,700원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
curl -X 매개변수를 찾을 수 없습니다
윈도우 11에서 강의를 수강중입니다.Hello World를 찍기위해 curl -X GET 'localhost:3000'을 하면 아래와 같이 뜹니다. cs의 터미널, 파워쉘에서 했을 때 똑같이 이렇게 뜨고 크롬에서 localhost:3000으로 했을 때 Hello World가 찍히는걸 보면 실행은 제대로 되었는데 왜 이렇게 뜰까요? 구글링 해도 잘 나오지 않아 질문합니다. curl -X GET 'localhost:3000' Invoke-WebRequest : 매개 변수 이름 'X'과(와) 일치하는 매개 변수를 찾을 수 없습니다. 위치 줄:1 문자:6 + curl -X GET 'localhost:3000' + ~~ + CategoryInfo : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
라우터 클래스 질문입니다
var user = require("./api/user"); app.use("/user", user); app.listen(3000, function () { console.log("Example app listening on port 3000"); }); module.exports = app;app.use("/user", user) 이렇게 하면 ./api/user/index.js파일에서 export한 router객체를 자동으로 참조하게 되는건가요?app.use("/user", router) 라고 해야 이해가 될거 같은데...express 문법을 몰라서 질문 올렸습니다
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
슈퍼 테스트2 강의 질문입니다
describe('GET /users는', () => { it('user리스트를 limit만큼 가져왔다', (done) => { request(app) .get('/users') .end((err, res) => { console.log(res.body) done() // 우리가 만든 API서버는 비동기로 동작한다. 그래서 비동기에 대한 처리로 콜백함수를 호출해야 한다?? }) }) }) 강사님께서 콜백함수 done()을 호출하는 부분에서 다음과 같이 말하셨습니다..."우리가 만든 API서버는 비동기로 동작한다. 그래서 비동기에 대한 처리를 해야한다"그런데 done()이라는 콜백함수를 호출하는 것이 어떤의미에서 비동기에 대한 처린인지 이해가 가지않아 질문을 남깁니다.
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
응답 강의중 질문입니다
Pdf 파일에 "204:내용없음, DELETE"라고 되어 있어 질문이 생겼습니다.204는 삭제요청을 했는데 내용 없을때 리턴해주는 상태 코드인건가요?? Get요청을 했는데 없을시에도 204를 리턴해 주어도 될까요?3xx 잘가~ 는 어떤 의미로 받아들여야 할지...이해가 가지 않습니다...
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
요청 형식 강의 질문입니다
HTTP경로로 자원을 식별한다고 알려주셨는데! lecture?user={id} 와 같은 식으로는 사용하지 않는건가요?
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
비동기 세계1 강의 내용 질문입니다
노드는 기본적으로 비동기로 동작한다라는 텍스트가 있는데! console.log()를 출력해보면 동기로 동작하는걸 볼 수 있습니다....기본적으로 위에서 아래로 동기로 동작하는데 비동기로 동작하는 함수가 많다는 의미의 텍스트 일까요?
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
오타로 인해 한참을 헤맸네요.
강의를 거의 끝까지 잘 따라가면서 코딩을 하고 있습니다.마지막 DB연동한 테스트 코드에서 한 가지 에러가 해결되지 않았어요. PUT /users/:id 성공시 변경된 name을 반환: Uncaught AssertionError: expected Object {} to have property name하지만 아무리 구현코드, 테스트코드를 살펴봐도 잘못된 점이 없어보여요. request(app) .put('/users/2') .send({ name: 'Malcolm' }) .end((err, res) => { console.log(res);이 부분에서 err는 null이길래 res 전체를 콘솔로 찍어보니, text: '<!DOCTYPE html>\n' + '<html lang="en">\n' + '<head>\n' + '<meta charset="utf-8">\n' + '<title>Error</title>\n' + '</head>\n' + '<body>\n' + '<pre>TypeError: models.User.fineOne is not a function<br> res에서 화면에 뿌려지는 text 부분의 html에서 fineOne이 오타라는걸 알았네요.err가 아닌 res에서 에러코드를 찾아야 하는게 우선 이해가 잘 안가네요. 물론 경험치에서 디버깅 스킬이 늘긴 하겠지만초보로써는 직접 저 에러가 터미널에 뜨는게 맞는거 아닌가 하는 생각이 들었네요.
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
'NODE_ENV'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.
환경변수 설정하는 NODE_ENV=test 이 부분에서 계속 에러가 나네요. 아마도 os마다 설정방법이 달라서 그런듯해요. npm i cross-env --save-dev 한다음에cross-env NODE_ENV=test로 하니까 잘 되네요.
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
img src부분과 require()에 대해 질문이요!
img태그에 src부분에 변수를 넣어서 사용하는게 목적인데요! vscode에서<img src="../../../agent_web_ui/dat/images/1668994704846/arrive_kiupdata1_kiupdata1_20200310172655897_92974574455-20200310_172655_8.png" />이런식으로 치면화면에서 F12눌렀을때 나오는 코드에서는<img src="img/arrive_kiupdata1_kiupdata1_20200310172655897_92974574455-20200310_172655_8.1a7485a1.png">이런식으로 자동으로 바뀌면서 이미지가 화면에 나오는데요하지만 주소를 변수(a)에 넣어서<img :src="a" />이런식으로 치면<img src="../../../agent_web_ui/dat/images/1668994704846/arrive_kiupdata1_kiupdata1_20200310172655897_92974574455-20200310_172655_8.png" />화면(F12)에서는 변환되지 않고 변수에 넣었던 값이 그대로 나오면서 이미지가 화면에 나오지 않더라고요 require('../../../agent_web_ui/dat/images/1668994704846/arrive_kiupdata1_kiupdata1_20200310172655897_92974574455-20200310_172655_8.png')를 하면img/arrive_kiupdata1_kiupdata1_20200310172655897_92974574455-20200310_172655_8.1a7485a1.png변환되서 화면에 이미지가 나오는 값으로 변경되더라구요 그래서 require()에 주소를 넣은 변수를 넣어서 화면에서 이미지가 나오는 값으로 뽑아내고 싶은데 어떻게 해야 할까요?require(`${this.sumpath2}`)를 하니까"Error: Cannot find module '../../../agent_web_ui/dat/images/1668994704846/arrive_kiupdata1_kiupdata1_20200310172655897_92974574455-20200310_172655_8.png'"이렇게 나와요! require()를 안쓰더라도 img src태그에 변수를 넣고 화면에 띄웠을때 변환될 수 있게 하는 방법도 있으면 알려주시면 감사하겠습니다!
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
bulkCreate 사용법 질문 (해결)
https://sequelize.org/docs/v6/other-topics/upgrade/#modelbulkcreate공식문서에서 검색한 내용입니다.이하는 공식문서에서 설명*bulkCreate()이 메서드는 이제 Bluebird.AggregateError 대신 Sequelize.AggregateError를 발생시킵니다. 이제 모든 오류가 오류 키로 노출됩니다.설명이 이렇게 나와있어서 샘플데이터를 넣는다고 생각하기 어려운데 어떻게 찾으신건가요? 꼭 알고싶습니다자문자답입니다https://sequelize.org/docs/v6/core-concepts/model-querying-basics/Creating in bulk처음 튜토리얼에 나와있었습니다.
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
api 분리 관련해서 질문 있습니다.
안녕하세요? 강의 잘 들었습니다. api 분리 관련해서 궁금한 게 있습니다. 강의에서는 라우팅 부분, 컨트롤 부분 두 가지로 분리해서 코드를 관리했는데 실무에 적용한다면, 프로젝트가 커진다면 MVC 패턴으로 코드를 관리해야 할까요? 지금처럼 라우팅, 컨트롤 이렇게 두 가지로도 충분히 관리가 될까요?
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
promise 가 넘어올 때 .then 사용법 문의
코딩하는 중 user.save() .then(_=>{ res.json(user); }) 이렇게 작성되는데, _=> 이것의 의미는 무엇일까요?
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
package-lock 파일은 어떤 용도일까요?
npm init 을 하게 되면 package / package-lock 두개가 생기는데 이 두개를 모두 들고 다녀야하는 것인지, 아니면 package 만 들고 다녀도 되는 것인지 궁금합니다. package 만 들도 다녀도 된다고 하면 lock 파일은 어떤 용도로 존재하는걸까요?
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
테스트 코드 실행이 안됩니다.
아래와 같은 메시지가 나오고 mocha 가 실행이 안됩니다. ㅠㅠ 환경은 window 입니다.
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
should실행시 mocha 사용하는이유는
node_modules/,bin/mocha utils.spec.js 를 실행하는데 should에서는 node_modules/.bin/should utils.spec.js를 실행하지 않고 /mocha 폴더를 사용하는건 잘못된게 아닌지 궁금합니다. /should 를 사용시 오류가 발생하는데 안내 부탁드립니다.
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
expect를 걸었음에도 불구하고 확인하지 않는 이유가 무엇일까요?
수업 전에 가능하면 먼저 풀어보려고 적은 코드라 강사님 코드와는 다릅니다. 제 생각에는 1. expect로 우선 상태 코드를 거른다. 2. end를 통해서 response의 property를 체크해서 값이 없는지 확인한다. 인 것 같아서 이렇게 코드를 구성해 봤습니다. 그런데, 이 경우 expect에서 값을 거르지 못하는 것 같아 이유가 궁금합니다. (test 코드만 작성한 상태라 통과하지 못해야 정상입니다) 또, 강사님께서는 test code에서는 값을 확인하지 않으시던데 제가 생각한 이유로는 1. 실무에서는 데이터가 너무 많기 때문에 확인하기가 어려워서 2. success의 output이 `204를 응답한다`이기 때문에 정해 놓은 조건에 따라가기 위해서인 것으로 생각되는데 맞나요? 만약 2.가 맞다면 test code를 작성할 때는 내부 로직에서 제대로 수행되었음을 가정하고 짜는 게 맞나요? 질문이 조금 길어졌네요 감사합니다 :)
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
안녕하세요. 강의 내용 중 질문있습니다.
아래 두 코드가 동일하다고 하셨는데, 테스트 코드를 돌려봤을 때 동일한 결과가 출력되지 않았습니다. 첫번째 코드로 테스트를 돌렸을 경우 3 passing이 나옵니다. 무엇이 다른 건가요? // 1 describe("실패 시", () => { it("limit이 숫자형이 아니면 400을 응답한다", (done) => { request(app) .get('/users?limit=two') .expect(400) .end((err, res) => { done(); }); }); }); // 2 describe("실패 시", () => { it("limit이 숫자형이 아니면 400을 응답한다", (done) => { request(app) .get('/users?limit=two') .expect(400) .end(done); }); });
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
에러가 납니다.
describe('GET /users/1는', () => { describe('성공시', () => { it('id가 1인 유저 객체를 반환한다.', (done) => { request(app) .get('/users/1') .end((err, res) => { res.body.should.have.property('id',1); done(); }); }); }); }) 이런에러가 뜨네요.
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
강의 중 describe POST 쪽 질문입니다.
질문이 2개가 있습니다. 질문1) 강의에서는, describe('POST /users 는', () => { before(() => models.sequelize.sync({force: true})); const users = [{name: 'alice'}, {name: 'bek'}, {name: 'chris'}]; before(() => models.User.bulkCreate(users)); 이렇게 하셔서 it 실행전에 before 에서 db 상태를 재정의해주셨는데요, 저는 위 부분을 before 하나로 합쳤는데 에러가 발생합니다. 똑같은 코드라 생각되는데, 어느 부분에서 차이가 있는건가요? describe('POST /users 는', () => { before(() => { models.sequelize.sync({force: true}); const users = [{name: 'alice'}, {name: 'bek'}, {name: 'chris'}]; models.User.bulkCreate(users) }) 질문2) before(() => { models.sequelize.sync({force: true}) }) // 에러 before(() => models.sequelize.sync({force: true})) // 정상 실행 중괄호 유무에 따라 왜 차이가 있는건가요?
- 미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
객체 래핑
간단한 질문인데요. 객체를 래핑했다는게 어떤 뜻인가요?