Node.js 교과서 - 기본부터 프로젝트 실습까지

Node.js 교과서 - 기본부터 프로젝트 실습까지

(17개의 수강평)

404명의 수강생

55,000원

조현영
평생
초급
수료증
145개 수업, 총 23시간 14분
Wishlist
jh shin 프로필

10장 4절 오류 메시지 jh shin 1일 전

안녕하세요? API <-> Call 간에 다음과 같은 오류 메시지가 발생하네요...

web(localhost:8003/test)오류 메시지 ::

Error: secret option required for sessions
    at session (C:\Users\pleoc\OneDrive\Documents\Start_up\javawork\nodebird-call\node_modules\express-session\index.js:200:12)
    at Layer.handle [as handle_request] (C:\Users\pleoc\OneDrive\Documents\Start_up\javawork\nodebird-call\node_modules\express\lib\router\layer.js:95:5)
.................

console terminal Message ::
[nodemon] starting `node app.js` express-session deprecated req.secret; provide secret option app.js:18:9 8003 '번 포트에서 대기중' GET /test 500 621.475 ms - 1444
express-session option 문제인 것 같은데, 도움을 받을 수있을까요?
감사합니다.

1
김다롬 프로필

9. CLI 프로그램 만들기 김다롬 3일 전

안녕하세요. 좋은 강의 해주셔서 감사합니다. 

9장 첫 시작부터 막혀서 질문드립니다. 

npm i -g로 패키지를 잘 설치해서 제로초님과 같은 결과를 받았는데도 

cli 를 쳐보면 제로초님과 같은 index.js 파일이 뜨지 않고 변수값을 요청합니다. 

어떻게 해야할까요?

 

2
neok 프로필

return 여부 neok 4일 전

res.redirect('/'); 와 같은 처리를 해줄 때 return을 해주는지 여부가 중요한가요?

2
jh shin 프로필

pug 파일을 올려주실 수 없나요? jh shin 4일 전

안녕하세요?

강의를 따라가고있는데, 

TypeError: C:\Users\pleoc\OneDrive\Documents\Start_up\javawork\NodeBird_old\views\main.pug:36
    34|             .twit-img
    35|               img(src=twit.img alt='섬네일')
  > 36|           -const like = user && twit && twit.Liker.map(l => l.id).includes(user.id);
    37|           if user && !like
    38|             button.like 좋아요
    39|           else if user && like

이런 오류가 계속 뜨는군요.. github에는 수정한 pug 파일이 없어서 가능하시면
올려주시면 도움이 되겠습니다.
감사합니다.

3
John J 프로필

질문4번 다시올립니다~! John J 7일 전

routes/index.js 파일에서

const { User } = require('../models') 이렇게 불러와서 User.findAll()을 하잖아요?

제가 User에 뭐가 들어있는지 몰라서 콘솔을 찍어봤더니 웹스톰 터미널에 아래와 같이 찍혔습니다.

class extends Model {}

그래서 User에 들어있는 값이 정확히 무엇인지 모르겠습니다ㅠㅠ  비구조화 할당으로 받는거보니 객체인거같긴한데... 무엇이 들어있는건가요?

그리고 User.findAll()하면 유저에 대한 테이블에 있는 정보가 배열로 불러와지나요? 

불러온 정보가 .then 내부의 users 매개변수로 들어가는 것은 이해를 했는데 이전 과정이 살짝 이해가 안갔습니다!

1
Hwan Kim 프로필

mysql 8.0 사용하시는분들은 Hwan Kim 7일 전

아마 이 에러가 날겁니다.

 

ERROR: Client does not support authentication protocol requested by server; consider upgrading MySQL client

 

스텍오버플로에서 찾아본결과 

워크밴치에서 

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '스키마password'

 

실행시키시면 에러없이 진행 가능하실거에요.

1
John J 프로필

좋은 강의 감사합니다. 질문이 몇 가지 있습니다. John J 8일 전

질문1. routes/index.js 에서는 왜 GET방식밖에 없고 sequelize.pug를 왜 렌더 해주는지 이해가 잘안가네요ㅠ

질문2. routes/users.js, routes/comments.js에서는 데이터들을 보낼 때 res.json을 사용하는데 모든 데이터를 보낼 때 다 res.json만 사용하나요?

질문3. routes/users.js에서 router.post 부분 프로미스가 성공하고 난 뒤에 데이터를 전송할 때 왜 .status(201)을 붙여주는건가요? 다른 곳에서는 안붙이고 res.json()만 하더라구요.

질문4. routes/index.js에서

const {User} = require('../models')를 하는데 제가 상수 User가 궁금해서 콘솔을 찍어봤더니

User:  class extends Model {}
(node:10824) [SEQUELIZE0004] DeprecationWarning: A boolean value was passed to options.operatorsAliases. This is a no-op with v5 and should be removed.
Executing (default): CREATE TABLE IF NOT EXISTS `users` (`id` INTEGER NOT NULL auto_increment , `name` VARCHAR(20) NOT NULL UNIQUE, `age` INTEGER UNSIGNED NOT NULL, `married` TINYINT(1) NOT NULL, `comment` TEXT, `created_at` DATETIME NOT NULL DEFAULT now(), PRIMARY KE
Y (`id`)) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM `users` FROM `nodejs`
Executing (default): CREATE TABLE IF NOT EXISTS `comments` (`id` INTEGER NOT NULL auto_increment , `comment` VARCHAR(100) NOT NULL, `created_at` DATETIME NOT NULL DEFAULT now(), `commenter` INTEGER, PRIMARY KEY (`id`), FOREIGN KEY (`commenter`) REFERENCES `users` (`id
`) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM `comments` FROM `nodejs`

1
John J 프로필

제가 책이 개정판인지는 모르겠으나 John J 8일 전

14장에 CLI프로그램 만들기가 있던데 여기는 9장에 있더라고요. 9장에 있는 CLI프로그램부터 들어도 별 차이가 없는 거겠죠? 

1
John J 프로필

mongoose.js John J 9일 전

안녕하세요. mongoose.js 파일을 하나한 살펴보고 있는 도중에 궁금한게 생겼습니다.

사용자 등록 버튼을 클릭하면 'submit'이벤트가 실행되면서 폼 제출이 되잖아요?

그리고 기본 폼 제출 특성을 막으려고 pervenDefault()메소드를 사용한 것 까지는 이해를 했습니다.

그런데 밑에 세 개의 변수를 선언할 때, e.target.username.value;를 입력하는데 여기서 username이 어디서 나온건가요? 다음 사진은 mongoose.pug 중 일부입니다.

사진을 보면 <input id="username" type="text" placeholder="이름">이라고 html이 구성되어있는데

어떻게 e.target.usrename.value가 저 id태그인 username을 인식하는지 궁금합니다.

아니면 제가 어떤 개념을 빠뜨리고 있는건가요?ㅠㅠ

1
John J 프로필

mongoose.js에 있는 소스코드를 완벽히 이해하고 넘어가야하나요? John J 9일 전

안녕하세요. 책이랑 같이 병행을 하고 있는 수강생입니다.

강의에서는 시간 제한 때문에 index.js, user.js, comments.js, pug 정도만 다루기 때문에 mongoose.js 의 ajax 처리 부분은 스킵하시더라구요.

교과서 2장에 ajax 처리 부분이 간단하게 나와있긴한데 그 정도만 알고 넘어가도 될까요? 

ajax부터 막히니까 다른거에서도 자꾸 걸리는 것 같네요.

아니면 ajax 처리 부분에 대해 제로초님이 알고계신 괜찮은 링크가 있을까요?

1
John J 프로필

어떠한 경우에 라우팅 미들웨어가 아닌 미들웨어를 사용하나요? John J 16일 전

localhost:3000 으로 접속했다고 해도 이 메인페이지에서 미들웨어를 어떤 목적으로 사용하는지 궁금합니다.

라우팅 미들웨어는 어떠한 경로를 갔으니 그 경로에서 무엇을 실행하기 위해 사용하는 것은 알겠는데 기본 미들웨어는 궁금합니다!

1
John J 프로필

익스프레스를 쓸수없는 상황이 언제있나요? John J 17일 전

순수 노드로만 써야하는 상황을 좀 자세하게 알고싶습니다.

1
자린이 프로필

몽고디비에서의 다대다 관계 자린이 23일 전

몽고디비에서 user와 post의 관계를 1:N으로 설정하고 싶어서 user와 post의 스키마안에 다음과 같이 작성을 했습니다. 그런데 로그인하고 글을 작성한 후 compass를 확인해보니 컬럼이 추가되지 않습니다. 어떤 부분이 빠졌는지 알려주시면 감사하겠습니다. 그리고 로그인 상태로 nodemon을 사용중인데 저장을 할 때 마다 로그인이 풀리는 것 같습니다. 다른 이유일수도 있는데 작업을 하다보면 1~2분 후에도 계속해서 로그인이 풀리고 있는데 해당 챕터의 serealize와 deserealize까지 구현을 했다면 세션에 로그인 정보가 저장되는 것인가요? 관리자 도구를 통해 로그인을 수행할때마다 sid가 생성되는 것을 볼 수 있었는데 왜 계속 유지가 되지 않고 로그아웃이 되는지 궁금합니다.

// post schema
  user: {
    type: mongoose.Schema.Types.ObjectId,
    require: true,
    ref: 'User',
  }

// user schema
  post: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Post'
  }

1
자린이 프로필

app.js로 서버를 실행시켜도 mongod로 데몬을 활성화 시켜줘야 하나요? 자린이 24일 전

일반적으로 강의처럼 model/index.js에 DB 로직이 있고 app.js로 실행시켰을 때 따로 mongod 데몬을 활성화시켜주지 않아도 DB 사용이 가능한거 같은데 (compass 포함) mongod는 언제 사용하는지 궁금합니다.

5
jh shin 프로필

authentication failed 오류 jh shin 27일 전

authentication failed 오류 Compass에서 발생합니다. 터미널에서 ">mongod --auth" 입력한 후에, compass에 들어가서 커넥션(username: root, pass: nodejsbook)을 하면, 상기와 같은 오류가 발생합니다. 제 생각컨데, DB에 먼저 설정하는 부분이 생략된것인가요?  

4