readme.md
  1. 기본 package 설치

    npm install -g yo express express-generator

  • npm yo : node뿐만이 아니라 web framework들의 scaffold틀을 만들어주는 npm
  1. 프로젝트 생성

  • express -option project_name

express --ejs --css sass --git blueprint_1th

  • Option

    • --ejs : ejs 사용 가능

    • --css : stylesheet 사용 가능

      • default = css이지만 sass 사용
    • --git : .gitignore 추가

    • --force : 강제로 진행

  1. 추가적인 npm

  • passport : 인증절차에 쓰이는 middleware
  • gravatar : 랜덤이미지 표시
  • connect-flash : flash자체가 session에 저장되는 메시지, 그걸 깔끔하게 보여줌
  • connect-mongo : 몽고DB 연결
  • mongoose : 몽구스 ODM - 몽고DB설정
  • express-session : DB에 세션 저장
  • passport-local : ID/PW 인증

app 실행방법

몽고DB start
sudo service mongodb start

windows cmd

set DEBUG=appname:* & npm start

bash && shell

DEBUG=appname:* npm start

  • 디버그모드 : 서버 실행 시 디버깅 정보 출력
    DEBUG=appname:* 

bash 단축명령어 등록법

alias 단축명령어 = '원래 커맨드'

alias de = 'DEBUG=blueprint_1th:* npm start'

alias

package.json 수동 설치

command로 설치한게 아닌 package.json에 적었을 때

npm install

몽고DB 사용법

공식홈페이지

Linux

서버 : sudo apt-get install mongodb-org

시작 : sudo service mongod start
종료 : sudo service mongod stop
재시작 : sudo service mongod restart

windows

다운로드
설치 : 그냥 쭈~욱 하기
서버 셋팅 하기

1. mongodb의 기본 dir 생성   
 <code>mkdir c:\data\db</code>   
 * default 폴더 바꾸기   
   <code>"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --dbpath "원하는 위치"</code>   
2. 몽고DB 프로젝트 폴더로 이동 후 mongod.exe 실행
 <code>cd C:\Program files\mongodb\server\3.4\bin\mongod.exe</code>
3. 로그 확인    

실행 중 에러

  • sass revision
    node버전과 sass버전 호환성 문제
    sass최신 버전은 node 7.x버전까지만 사용 가능하다.
    npm rebuild node-sass
  • express-session 버전에 따른 문법 change
    app.use(cookieParser())
    app.use(cookieParser('some secret text'))

구성도

기본적으로 MVC 패턴과 Server쪽만 구성이 되어 있다.

따라서 Server 폴더에 Model View Controller 이 3가지 폴더와 routes를 구성하는 routes, 그리고 express의 기본 구성 및 module을 설정하는 config폴더로 이루어져 있다.

1. config/passport.js : passport-local을 이용하여 로그인 구현    
 apps.js : 모듈 호출   
 model/user.js : 비밀번호 확인    
 routes/index.js : 각 페이지 설정   
 [참조](https://www.zerocho.com/category/NodeJS/post/57b7101ecfbef617003bf457)    

2. Controller/comments.js   
 댓글만 구현하므로 Controller파일이 하나이다.    
 중간에 render로 direction시키는 부분에서 설정된 문법을 view페이지에서 사용한다.    

3. Model  
 로그인할 유저 & 댓글이 comments 모델 2가지를 구현    
 NoSQL인 mongodb 형식대로 JSON Type이며 User모델에서는 bcrypt를 사용하여 비밀번호를 암호화한다.    

4. routes/users.js : user 리스트를 보여줌    
 routes/comments.js : view에서 입력받은 양식들을 model에 넘겨주는 역할 및 설정   
 routes/index.js : app.js와 같은 역할 (about comment CRUD)   

'Node.js > Code-Flow' 카테고리의 다른 글

MongoDB - NoSQL  (0) 2017.12.13
[2] Middleware  (0) 2017.12.06

+ Recent posts