inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

노드 리액트 기초 강의 #12 토큰 생성 with jsonwebtoken

throw er; // Unhandled 'error' event

789

권석기

작성한 질문수 8

0

안녕하세요 강의 너무 잘듣고있습니다

/login 으로 post 요청하여 계정을 검증하는 부분에서

 throw er; // Unhandled 'error' event

이러한 오류가 나타나는데 port 문제라고 해서 port를 cmd로 죽이고 여러번 해봤지만 문제가 여전해서 

질문 남깁니다.

 


const express = require("express"); // express 모듈 가져오기
const app = express(); // 새로운 express 앱생성
const port = 5000; // 포트번호지정
const { User } = require("./models/User");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const cookieParser = require("cookie-parser");
//application/x-www.form.urlencoded
app.use(bodyParser.urlencoded({ extended: true }));
// application/json
app.use(bodyParser.json());
app.use(cookieParser());
const config = require("./config/key");
mongoose
  .connect(config.mongoURI)
  .then(() => {
    console.log("mongoDB connected!");
  })
  .catch((err) => {
    console.log(err);
  });

app.get("/", (req, res) => {
  res.send("Hello World! 노드 실행d");
});

app.post("/register", (req, res) => {
  // 회원가입 할때 필요한 정보들을 client에서 가져오면
  // 그것들을 데이터 베이스에 넣어줌

  const user = new User(req.body);
  user.save(function (err, userInfo) {
    if (err) return res.json({ success: false, err });
    return res.status(200).json({
      success: true,
    });
  });
});

app.post("/login", (req, res) => {
  User.findOne({ email: req.body.email }, (err, user) => {
    if (err) {
      return res.json({
        loginSuccess: false,
        message: err,
      });
    }
    // 요청된 이메일을 데이터베이스에서 있는지 찾는다.
    if (!user) {
      return res.json({
        loginSuccess: false,
        message: "이메일이 존재하지 않습니다.",
      });
    }
    // 요청한 이메일이 존재한다면 비밀번호가 같은지 확인
    user.comparePassword(req.body.password, (err, isMatch) => {
      if (err) {
        return res.json({
          logginSuccess: false,
          message: err,
        });
      }
      if (!isMatch) {
        return res.json({
          loginSuccess: false,
          message: "비밀번호가 틀렸습니다.",
        });
      }
    });
    // 비밀번호까지 맞는다면 token을 생성한다.
    user.generateToken((err, user) => {
      if (err) return res.status(400).send(err);
      // 저장은 어디에? 쿠기, 로컬스토리지
      res
        .cookie("x_auth", user.token)
        .state(200)
        .json({ logginSuccess: true, userId: user._id });
    });
  });
});

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`);
});


react nodejs

답변 1

0

John Ahn

안녕하세요

혹시 백엔드에서 나오는 에러를 확인해보셨나요? 

현재 에러 로그가 저것밖에 없다 보니 확인이 쉽지 않아서요 ㅠㅠ 

0

권석기

이 부분에 status를 state로 오타를 내서 고치니깐 해결됬습니다

손가락이 state를 기억하고 오타를 낸거같습니다 답변해주셔서 감사합니다!

   res
        .cookie("x_auth", user.token)
        .state(200)
        .json({ logginSuccess: true, userId: user._id });

깃 이메일이랑 비번이 필요하다고 하네요

0

36

1

404 에러

0

103

1

34강 인증 체크에서 element 사용 때문에 에러나시는 분들 이렇게 하심 됩니다.

0

121

1

로그인, 로그아웃, 토근 작동 안 함

0

240

0

9강 오류 어떻게 해결하나요?

0

195

1

localhost 에서 연결을 거부했습니다.

0

1931

4

포스트맨에서 true가 안떠요

0

151

1

왜 안되나요

0

130

1

몽고db 연결 오류가 납니다 위에껀 입력한 코드, 아래껀 터미널이에요

0

243

1

로그아웃 401 에러(Unauthorized)

0

506

2

암호가 해싱되지 않고 입력값 그대로 db에 저장되는 문제

0

151

1

7강중에서

0

167

2

User.findByToken is not a function

0

212

1

루트 디렉토리

0

272

1

useState

0

562

1

프록시 잘 설정했는데도 404 오류 뜨는 분들

5

876

6

webpack 관련 에러 질문

0

220

1

리액트 관련 질문

0

273

1

14강 로그아웃 안됨

0

319

1

mongoDB 데이터 확인하는 법

0

411

1

postman 에러

0

293

1

선생님 리덕스를 사용하면 어떠한 부분이 좋은지 알 수 있을까요?

0

235

1

다음과 같은 에러들이 발생합니다.

0

274

1

14강 로그아웃 기능 구현시 postman에서 Cannot POST 오류가 뜹니다.

0

380

1