WILT-191010

1 분 소요

오늘 한 일

  1. 블록체인 강의 듣고 정리
  2. 기존 회원가입 과정 보완
    • 기존 문제
    1. 새로운 계정 생성 시 db에는 값이 저장되지만 response 처리가 안 됨
    2. app.get 등 express로 처리된 부분을 express.Router()이용해서 변경하기 - 해결
    3. 알고보니 그냥 response처리를 안 해줘서 그런 거였다. response 처리하는 코드 넣어주니 정상 작동함
     res.json(req.body.name+"저장 성공");
    


    1. 요청에 따른 라우터 분리
      • 현재 연습삼아 route폴더 안 login, register 파일을 만들어서 코드 분리 완료
      • 회원가입 부분은 정상작동
      • 로그인은 db정보 비교하는데 문제가 있는지 저장된 아이디로 로그인해도 없는 정보라고 뜬다. 이 부분은 내일 session, passport 사용해서 구현할 예정
      • 이유는 모르겠지만 최근 날짜 자료에도 안 되는 코드들이 있었다. (export, import 관련)
      • 라우터 분리 참고 블로그: https://dahanweb.tistory.com/47
         // app.js (메인 파일)
         // 모듈 import할 때 안 되는 코드
         import express from "express"; 
         import User from "../Model/User";
    
         // 모듈 import 되는 코드
         const express = require("express");
         var user = require("../Model/User");
    
         // login.js (loginRouter 모듈 파일)
         // 모듈화 안 되는 코드
         export default loginRouter;
    
         // 모듈화 되는 코드
         module.exports = loginRouter;
    


    1. 기타 에러처리 DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.

    이 에러를 해결하기 위해 검색해보니 mongoose.connectMongoClient를 사용하게 하고 { useUnifiedTopology: true } 이 옵션을 추가해야 한다고 한다.

    1. DB 주소 안 보이게 환경설정 + .gitignore설정
      • 3번 문제 해결을 위해 검색하다보니 mongoose.connect(URL, callback) 부분의 URL string 값 부분에 직접 mongo url을 적지 않고 process.env.MONBO_URL라는 값을 사용하는 것 발견
      • DB주소를 외부에 노출하지 않기 위해 환경변수로 저장한 후 그 값을 불러와서 사용하는 것이었다.
      • .env파일을 프로젝트 root 경로에 생성한 후 MONGO_URL = url 값을 적는다.
      • 이러한 환경변수는 github에 누구나 볼 수 있게 공유하면 안 된다.
      • 원격 저장소에 push하지 않을 파일(혹은 폴더)를 .gitignore이라는 파일 안에 적어주면 된다.
  3. 생활코딩 강의 듣기
    • 생활코딩 WEB2 node.js 관련 강의
    • express, 쿠키와 인증, 세션과 인증, passport의 필요한 강의 골라서 수강
    • 내일은 제로초나 다른 블로그 참고해서 코드 구현 시작할 예정
    • 내 코드에서 수정할 부분(내일부터)
    1. 로그인 시 서버 DB의 정보와 비교하기
    2. router로 분리하기
    3. 추후 로그인 된 상황을 안드로이드 UI에서 어떻게 보여줄 수 있을까?
    4. 비밀번호 암호화

댓글남기기