WILT-191004

1 분 소요

오늘 한 일

  1. 블록체인 강의 듣고 정리
  2. Mongoose 설치하고 기존 코드에 적용
    • 이제야 package.json파일의 의미를 알게 되었다. npm 패키지 설치하면 자동 업데이트 해주는 것도 처음 알았고..
    • 원래는 기존 코드 중 json형식으로 만든 모델만 몽구스로 바꾸려고 했는데 제로초 및 여러 블로그를 보다 보니 애초부터 서버 파일을 여러 하위 구조로 나눌 필요성을 느껴서 결국 프로젝트를 새로 만들었다.
    • db, server, route, model을 각각 분리했다.
    • route 파일은 클라이언트 요청 중 http 메소드, url 주소에 따라 다른 로직을 수행하게 중계하는 역할을 한다. 즉 RESTful한 API를 구현하기 위해 필요한 부분이었다.
    • 비밀번호 암호화 부분은 나중에 추가하기로 하고 일단 Mongoose와 route 파일을 이용해 POST 방식으로 회원가입 하는 부분을 만들었다.
    • 중복된 아이디 검사 + 계정 정보 db에 저장은 되는데 새 계정 저장 시 response 시간이 비정상적으로 오래 걸린다. 아마 mongoose 모델 부분과 관련된 문제가 아닐까 생각 중. 내일 찾아본다.
      // REGISTER USER
    app.post('/register', function(req, res){
        // req err처리 필요 + req id 검사해서 중복안되게 처리 필요

        //뭔가 이 부분이 문제 있는 것 같은데..find를 하기 위해 객체를 언제 선언해야되는지 모르겠다.
        var User = require('../Model/User.js');

        var userid = req.body.id;
        var password = req.body.pw;

        User.findOne({id: req.body.id}, function(err, user){
            if(err){
                console.error(err);
                return next(err);
            }
            if(user){
                res.json(req.body.id+"는 중복된 id입니다.");
                console.log(req.body.id+"는 중복된 id입니다.")
            }else{
                var user = new User();
                user.id = req.body.id;
                //password 암호화 필요
                user.pw = req.body.pw;
                user.salt = "";
                user.name = req.body.name;
                user.type = req.body.type;
    
                user.save(function(err, user){
                    if(err) return console.error(err);
                    
                    console.log(req.body.name+"저장 성공")
                });
            }
        });
        
    });

Invalid schema, expected mongodb or mongodb+srv 에러

  • db 연결 시 그냥 ‘localhost~로 시작하면 발생하는 에러. 바껴서 ‘mongodb://127.0.0.1:27017/{내 db이름}’로 해주어야 한다.

Error: listen EADDRINUSE: address already in use :::8080

  • 이건 서버 열었던 기존 터미널 안 닫고 새로 열어서 같은 파일 실행했더니 발생한 오류. 기존 서버 닫아 주어야 함
  1. Node.js 예제 코드 분석
    • 내가 참고한 코드는 이제보니 mongoose, passport, Router등 사용 안 하고 그냥 한 군데 필요한 모든 코드를 때려 넣은 예제였다…ㅎ 빨리 알아서 다행인건가
  2. 제로초 node.js 공부 시작
    • 1부터 10(passport로 회원가입 및 로그인)까지 봤다. 아직 회원가입 부분을 구현 중이고 (새 계정 생성 시 문제 있음) 내일 로그인 기능 구현한 다음 다시 찬찬히 봐야겠다.
    • 웹 개발을 가정하는 포스팅이라 나에게 필요한 부분과 필요 없는 부분을 잘 구별해서 봐야겠다.

댓글남기기