inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

리액트로 나만의 블로그 만들기(MERN Stack)

11강 async로 바꿔봤는데 맞나요 ??

286

송지훈

작성한 질문수 28

0

제가 예전에 강의를 ckeditor부분까지 듣다가 공부할게 좀 있어서

지금 다시 보는데요...

router.post('/'async (reqres=> {
  try {
    console.log(req.body);
    const { nameemailpassword } = req.body;

    if (!name || !email || !password) {
      return res.status(400).send('입력하지 않은 칸을 채워주세요.');
    }

   1.
// Check for exising user
    const exUser = await User.findOne({ email });
    if (exUser) {
      return res.status(400).send('이미 가입된 유저가 존재합니다.');
    }

    const newUser = await new User({
      name,
      email,
      password,
    });

    const hashedPassword = await bcrypt.hash(password10);

    newUser.password = hashedPassword;

    await newUser.save();

    jwt.sign(
      { id: newUser.id },
      JWT_SECRET,
      { expiresIn: 3600 }, //
      (errtoken=> {
        if (errthrow err;
        res.status(200).json({
          token,
          user: {
            id: newUser.id,
            name: newUser.name,
            email: newUser.email,
          },
        });
      },
    );
  } catch (error) {
    console.error(error);
  }

}); 

이렇게 했는데요.

코드에 틀린 부분이 있을까요?

2. 이코드는 그냥 sequelize에서는 이런식으로 했었는데
mongoDB는 이런식으로 안되나용??
const newUser = await User.create({
       name,
      email,
     password:hashedPassword,
  });

sequelize로 mysql할때랑은 좀 다른거 같아서 헷갈려용

아 참고로 bcryptjs말고 그냥 bcrypt로 했어요.

그리고 첫번째 복사한 코드는 postman이랑 mongodb에는 데이터가 저장이 잘되긴했는데

두번째 복사한 코드는 실험을 안해봐서 혹시 되는지 해서 여쭤봤습니다.

3.jwt.sign(

      { id: newUser.id },
      JWT_SECRET,
      { expiresIn: 3600 }, //
      (errtoken=> {.....
토큰을 이렇게 주셨자나요
근데 글을 쓰다가 3600초가 지나면
토큰이 만료되서 글이 안써지지않나요????
이런 경우 어떻게 처리하나요?
저 만료시간을 늘리나요??

4.마지막으로요.

제가 next로 만들건데요.

ckeditor부분하고

배포부분이 많이 다른가요??

express bootstrap mongodb react redux nodejs

답변 2

1

싸플

1. 일단 보이는 것으로는 큰 문제가 없을 것으로 보입니다. 

2. 해당 코드는 비밀번호값을 받아서 미리 해쉬값으로 처리해주고 난 다음, 그 결과를 가지고 마지막으로 User.create를 한다는 것 같은데, 작동할 것 같네요. 한 번 시도해보시고 결과를 알려주시면 감사하겠습니다. 

3. 보안을 위해서 만료기간을 그렇게 설정했기에 토큰값이 기간 지나면 당연히 글이 안올라갑니다. 글이 올라간다면 더 이상한 것이죠. 이와 관련해서 CKEditor는 autosave 플러그인이 있습니다. 참고하시기 바랍니다. https://ckeditor.com/docs/ckeditor5/latest/api/module_autosave_autosave-Autosave.html

4. NextJS로 만드시더라도 CKEditor 부분은 크게 다를게 없습니다. 배포도 다를건 없습니다. 다만 SSR을 한다는 것은 유저가 부담해야할 비용을 서버가 부담하는 것이기에, 기본적으로 서버(백엔드, 프론트)는 2대 돌려야 합니다. 

0

송지훈

정말 감사합니당.

오늘은 할게 있어서 내일 해보고 결과 댓글로 올릴게요.

Good night 입니다.~

npm run dev-watch 오류

0

77

1

npm i react-redex redux-saga react-router-dom connected-react-router bootstrap reactstrap dotenv 명령어 설치하면 에러날까요?

0

441

1

mongodb 자세히 알고 싶습니다

0

265

1

강의 듣으면서...포스트 맨도 안됩니다

0

248

1

혹시 gatsby 생성하는 명령어 하는지 알고 싶습니다

0

275

1

webpack 설정 문제입니다.

0

310

1

Category관련 질문

0

234

1

https://www.ssaple.net/ 블로그 접속이 되질 않아요.

0

312

1

리액트 버전 오류 나시는 분들 참고

0

483

1

react 18버전에서의 connected-react-router 가 설치가안됩니다

0

1070

1

jwt.sign() 에서의 질문입니다.

0

208

1

ssaple.net 접속이 안됩니다.

0

369

1

Media(Video) 파일 첨부관련 질문

0

297

1

페이지 Link를 이용한 페이지 이동이 안됩니다

0

340

1

webpack.config.js 설정

0

834

1

몽고db 사이트가 많이 바뀌어서

0

346

1

선생님 req에 아무것도 안들어오는데 혹시 뭐가문제일까요 ?

0

303

1

안녕하세요 강의 잘 보고 있습니다 질문 하나 있는데요 ..

0

1587

1

그대로 따라하였고 하루종일 reboot하는데 되지않습니다..

0

214

1

Encountered two children with the same key 에러..

0

866

1

강사님 redux에러 질문이요

1

245

2

선생님 왜 저는 백날해도 collapse 내용이 link아래로 갈까요?

0

351

2

postDetail scss 문제

0

236

3

강사님 포스트 디테일 부분을 똑같이 작성하였는데 이런 오류가 나서 도저히 방법을 모르겠습니다 ㅠㅠ

0

212

1