게시글

etc - 7달 전 등록 / 19일 전 수정

Node.js 교과서 오타&오류 정오표

조회수:
0

발견된 오류&오타는 여기에 등록됩니다. 발견된 오타&오류는 증쇄할 때마다 수정됩니다. 예를 들어 1쇄 때 발견된 오류는 2쇄 때 수정돼서 판매됩니다. 책이 몇 쇄인지에 관한 정보는 2쪽에서 보실 수 있습니다. 중대한 에러는 빨간 색으로 표시해두었습니다.

bcrypt가 설치되지 않는 분들은 https://github.com/kelektiv/node.bcrypt.js/wiki/Installation-Instructions#microsoft-windows 를 참고하세요. 

4쇄에서 수정될 사항

  • 451 달려졌 -> 달라졌
  • 546, 555쪽 meta chart -> meta charset

3쇄에서 수정된 사항

  • 목차 encodeURLComponent, decodeURLComponent가 아니라 encodeURIComponent, decodeURIComponent입니다.
  • 138쪽 보라색 선이 쿠키를 가지지 않은 상태고, 검은 선이 쿠키를 가진 상태입니다.
  • 144쪽 쿠키 파싱 코드가 이해를 돕기 위해 간소화되었습니다. 링크 참조 
  • 익스프레스 에러 핸들러의 매개변수는 err, req, res, next 네 개여야 합니다. 또한 11, 12, 13장의 views 폴더에 9장 views/error.pug를 복사해서 넣어주세요.
  • 239쪽 brew install mysql@5.7
  • 239쪽 우분투 GVI -> 우분투 GUI, sudo apt-get install mysql-server-5.7
  • 279쪽 tag.setPosts 대신 tag.addPosts (setPosts해도 되긴 합니다만, addPosts는 등록, setPosts는 수정의 의미가 강합니다)
  • 272쪽 models 폴더 내 파일들을 만들 때, 한글 에러가 난다면 15.1.2를 참고하여 collate와 charset 옵션을 추가하세요. 기존에 테이블을 만드셨던 분들은 데이터베이스 테이블을 지우고 다시 서버를 실행하셔야 합니다. 시퀄라이즈 모델을 수정한다고 데이터베이스가 자동으로 변경되지 않습니다. 
  • [].forEach.call 또는 Array.prototype.forEach.call 코드들을 그냥 document.querySelectorAll().forEach로 수정합니다. querySelectorAll은 forEach를 지원합니다. IE에서는 forEach가 안 돼서 예전 코드로 하셔야 합니다.
  • 360쪽 email 옵션의 allowNull을 true로 수정합니다. 카카오가 더는 이메일을 필수로 제공하지 않습니다. 기존에 false로 하셨던 분들은 데이터베이스 테이블을 지우고 다시 서버를 실행하셔야 합니다. 시퀄라이즈 모델을 수정한다고 데이터베이스가 자동으로 변경되지 않습니다.
  • 365쪽 const pageRouter = require('./routes/page')입니다.
  • 412쪽 마지막 줄 "이 부분은 다음 절에서 작성합니다"가 다음 절에 없기 때문에 이 코드 를 참조해서 수정해주세요.
  • 414쪽 const request = async (req, api) => { 부분의 윗줄 공백에 axios.defaults.headers.origin = 'http://localhost:8003'을 추가하는 게 좋습니다(책 내용 흐름만으로는 에러가 나지 않지만 nodebird-call의 다른 라우터에 접근할 때 문제가 될 수 있습니다). 위 항목 링크를 참조하세요.
  • 426쪽 http://localhost:/8003 -> http://localhost:8003
  • 475쪽 package.json scripts의 start 속성 끝에 콤마 제거(JSON은 끝 콤마를 허용 안 합니다)
  • 588쪽 sudo i -g n -> sudo npm i -g n

아래 오류&오타는 2쇄에서 모두 수정되었습니다.

  • 33p 첫 줄 알아보겠습다. -> 알아보겠습니다. 
  • 145쪽 두 번째 줄 charset:utf-8 -> charset=utf-8
  • 185쪽 두 번째 줄 packgage.json -> package.json
  • 352쪽 -const isFollowing 부분 코드가 -const follow = user && user.Followings.map(f => f.id).includes(twit.user.id);
    if user && user.id !== twit.user.id && !follow로 수정되었습니다.
  • 444쪽 room.js 코드 defaultValue: 10 -> default: 10
  • 493쪽 socket.js 코드 오류입니다. https://github.com/ZeroCho/nodejs-book/blob/master/ch12/12.3/node-auction/socket.js로 수정하시거나, socket.js의 코드 부분을 app.js의 마지막에 붙여 넣으세요.(이 경우, webSocket(server, app)은 지우세요)
  • 7월 16일부로 Google Maps Platform이 유료가 됨에 따라 13장 node-place는 15.5의 결제 계정 등록(node-place에 결제 계정을 등록합니다)이 필요하게 되었습니다. (결제 계정만 등록할 뿐 무료 200$를 주긴 합니다)
투표로 게시글에 관해 피드백을 해주시면 많은 도움이 됩니다. 오류가 있다면 어떤 부분에 오류가 있는지도 알려주세요! 잘못된 정보가 퍼져나가지 않도록 도와주세요.
Copyright © 2016- 무단 전재 및 재배포 금지

댓글

14개의 댓글이 있습니다.
25일 전
p101, p102 소스 결과부분
----------------------------------------------------------------------------
searchParams:
URLSearchParams {Symbol(query): Array(8), Symbol(context): URL}
searchParams.getAll():
Array(2) ["nodejs", "javascript"]
searchParams.get(): 10
searchParams.has(): true
searchParams.keys():
URLSearchParams Iterator {Symbol(context): Object}
searchParams.values():
URLSearchParams Iterator {Symbol(context): Object}
Array(1) ["es6"]
Array(0) []
searchParams.toString(): page=3&limit=10&category=nodejs&category=javascript
------------------------------------------------------------------------------
키와 값 자체는 for문으로 확인이 가능한데,Iterator가 작동하지 않는것 같습니다..
getAll() 메소드 같은 경우에도 교재의 콘솔결과창에는 JSON 타입으로 나오는것 같은데,
실제로는 JSON 타입이 아니라 배열로 들어가네요.. 버전의 문제인지?
해결법이 있습니까?
24일 전
배열도 JSON입니다. Array(2) 이 표시는 별로 중요한 게 아닙니다. 그리고 keys와 values 이터레이터 잘 작동합니다. const key = myURL.searchParams.keys(); key.next(); 해보세요~
한 달 전
546쪽 template.js 소스에서
...
<const htmlTemplate = `<!DOCTYPE html>
...
<head>
<meta chart="utf-8" />
이라고 되어있는데, meta charset으로 수정해야 할 것 같습니다.
한 달 전
아.. 감사합니다 ㅠㅠ 오픈챗으로 연락주시면 인프런 할인쿠폰 50%라도 하나 드리겠습니다. 문화상품권도 하나 드릴게요.
한 달 전
아닙니다~~ 마음만 받겠습니다 ㅋ
한 달 전
전자책으로 구매했는데 전자책으로는 오탈자가 다 수정된 채로 다운로드되는건가요? 아니면 따로 해야되나요? 하는 방법은있는지 궁금합니다!
한 달 전
주기적으로 오타가 수정되는 걸로 알고 있습니다. 3쇄가 나오면 전자책도 바로는 아니더라도 오타가 수정됩니다. 다운로드만 새로 하셔야 할 수도 있습니다.
2달 전
474~475쪽 package.json 코드에서
"scripts" 안의 "start": "nodemon app" 다음에 콤마를 지워야 할 것 같습니다.
2달 전
항상 감사합니다 ㅠㅠ
2달 전
144page 맨 윗줄 책하고 소스코드 하고 다른점, 소스코드로 하면 정상실행. 저는 실력이 부족해서 모르겠네요 ^^;
2달 전
아 3쇄에서 그 부분이 빠질 예정입니다. 실제로 없어도 잘 동작합니다.
2달 전
9.4의 384쪽에 routes/page.js 코드에서
Post.findAll({ 아래의
include: 부분의 들여쓰기가 조금 잘못되었네요. 사소한 거지만, 제보 드립니다 ㅎ
2달 전
감사합니다. 다행히 코드 실행에는 문제 없는 부분이네요
2달 전
15.1.9.2(588페이지)에서
sudo i -g n이 아니라
sudo npm i -g n인 것 같습니다.
2달 전
앗 죄송합니다 ㅠㅠ 3쇄에서 반영하겠습니다.
5달 전
365p app.js 소스에
...const page = require('./routes/page');
으로 나왔는데 이전 app.js 소스하고 깃허브에 올리신 소스에는 pageRouter라고 되어 있습니다.
4달 전
감사합니다 ㅠㅠ 그리고 죄송합니다.
6달 전
226p. 8번째줄, 오른쪽의 req.app.get(키)가 app.get(키)가 되어야 할 것 같습니다. 설명은 그런데, 적혀있는건 다른게 적혀있네요.
6달 전
req.app.get(키)와 app.get(키)는 기능이 같습니다. req.app.get(키)는 라우터에서 가져오는 방법입니다. 11장에서 이 코드를 많이 사용하므로 그 부분 보시면 되겠습니다~
6달 전
아 그런데 예시는 좀 혼동이 되게 적혀있긴 하네요. 틀린 말은 아닙니다 ㅠㅠ 이 부분은 증쇄할때 설명 좀 수정하겠습니다
6달 전
한글이 참 어렵네요. 다시 읽어보니, 결국은 맞는 말인데, 문맥에 따라서 애매하게 해석될 수 있어서, 처음 읽었을 때는 오타라고 생각했습니다. 빠른 피드백 감사합니다!
6달 전
전자책 방금 구매했습니다! 열심히 보겠습니다~! 그런데 오타수정은 전자책에도 주기적으로 반영되어 업데이트되나요??
6달 전
지금까지 발견된 오타는 수정되었을 건데요. 나머지 오타는 주기적으로(전자책에 반영되는데 조금 시간이 걸립니다)
6달 전
185p 위에서 두번째 줄에 'packgage.json' 이라고 되어있습니다.
6달 전
감사합니다. ㅠㅠ
7달 전
60P relationship1,2객체 마지막 원소 끝에(logFriends) , 붙어있습니다.
visual sutudio code에는 잘 동작하는데 오타 인거 같습니다.
7달 전
오타 아닙니다~
7달 전
68p 프런트엔드 자바스크립트 장에 ajax 샘플코드들을 실제로 수행해보면 모두 CORS관련 오류들이 뜹니다. 실제로 동작하는 주소라 콘솔에서 결과를 받을 수 있다고 씌여져 있지만 크로스 싸이트 오류때문에 에러가 뜹니다. 추가 헤더가 필요할 것 같습니다.
7달 전
zerocho.com의 콘솔에서 치셔야 할겁니다. 죄송합니다 ㅠㅠ
7달 전
앗 다시 보니까 69쪽에 POST 요청 시 CORS 에러가 뜨니 10.7을 참고하시라고 적어두었네요.
7달 전
oops 그러네요? ^^ 이제야 확인했습니다.
7달 전
33p
첫줄 오타 -> 알아보겠습다.
7달 전
감사드리고, 죄송합니다. ㅠㅠ