구글 지도 API key 얻기

Google Maps API페이지에서 플랫폼 별로 KEY를 받을 수 있다.
이 후 app/views/partials/head.html파일에 보면
"https://maps.googleapis.com/maps/api/js?key= key입력" 부분에 key를 입력하면 된다.

이 key를 제대로 입력하지 않으면
error 페이지
이와 같은 페이지가 뜨면서
Console 에러

이런 에러를 뿜어낸다.



몽고 DB 대량의 데이터 insert

이는 MySQL의 Workbench가 GUI툴이듯이 MongoDB의 GUI툴을 사용하면 되는데 책에 있는 방법은 RoboMongo를 사용한다.



거리제한 필터


'Node.js > Multiple OS' 카테고리의 다른 글

4장. Yeoman  (0) 2018.01.01
3장. BSON이란?  (0) 2017.12.05
2장. MySQL 연동 & Template 및 미들웨어  (0) 2017.12.05
1장. express & 몽고DB 설치  (0) 2017.12.03

Yeoman이란?

WebApp을 포괄적으로 구성하는 scaffolding tool이다.

요맨 그 자체로는 단순히 CLI에 불과하며 yo-generator라는 모듈을 통해 사용할 수 있다.

    <!-- Angular 생성 -->
    yo generator-angular

    <!-- express 생성 -->
    yo generator-express

    <!-- Vue.js 생성 -->
    yo generator-Vuejs

참조
yoman
yoman 구성도

Bower(Web Package Manager)

Web FrontEnd 전용 패키지 매니저로 Twitter에서 개발되어 그 하단에서만 사용되었지만 규모가 커지면서 2012년 Twitter가 오픈소스로 공개하여 독자적으로 사용이 가능하다. 다만 이를 사용하기 위해서는 git과 NPM이 필요하다.

참조
Bower 홈페이지
Bower 사용법

BowerError

generator-express와 express-generator의 차이

  • generator-express
    Yeoman에서 express의 기본틀을 생성하는 모듈

  • express-generator
    express모듈의 하위 모듈로 express의 기본 틀을 생성해주는 모듈

참조
두 모듈의 차이점?

'Node.js > Multiple OS' 카테고리의 다른 글

5장. Google API  (0) 2018.01.01
3장. BSON이란?  (0) 2017.12.05
2장. MySQL 연동 & Template 및 미들웨어  (0) 2017.12.05
1장. express & 몽고DB 설치  (0) 2017.12.03
readme.md

환경별 셋팅 방법 (dev, production, test)

NODE_ENV를 설정하는 것으로 Express 3.x까지는 app.configure()로 쓰였다가 Express 4.x부터는 문법이 바뀌었다.

    // Express 3.x
    app.configure('development', function() {
    // configure stuff here
    });

    // Express 4.x
    var env = process.env.NODE_ENV || 'development';
    if ('development' == env) {
    // configure stuff here
    }

BSON(Binary JSON)

JSON을 Binary data, 즉 컴퓨터가 이해 할 수 있는 16진수 데이터로 변환한 것을 말하며, 최초로 몽고DB에서 도입하였다.


BSON
Wiki

FS stream API

Node.js에서 파일을 read/write할 때 쓰는 API

'Node.js > Multiple OS' 카테고리의 다른 글

5장. Google API  (0) 2018.01.01
4장. Yeoman  (0) 2018.01.01
2장. MySQL 연동 & Template 및 미들웨어  (0) 2017.12.05
1장. express & 몽고DB 설치  (0) 2017.12.03
readme.md

MySQL 설치 및 실행법

  • windows

    • 설치 : MySQL 홈페이지의 Windows용 installer로 선택적 설치
    • 실행 : 따로 실행할 필요 없음
  • Ubuntu

    • 설치 : sudo apt-get install mysql-server mysql-client
    • 실행 : sudo service mysql start
    • 중지 : sudo sevice mysql stop
  • Mac

    • MySQL 홈페이지의 Mac용 installer로 설치
      참조

Swig Template

JS Template 엔진으로 Django, Jinja2, and Twig 등에서 사용할 수 있다.

Docs
Github

Sequelize 미들웨어

Node.js 기반의 ORM으로 PostgreSQL, MySQL, MariaDB, SQLite, MS-SQL을 지원한다.

가장 큰 특징은 Promise를 기본으로 동작한다는 것이다. Promise는 Promise/A+ 로 불리는 spec에 따라 정의된 비동기작업 제어방식이다. ES6에는 native로 Promise가 포함되었다.

Promise의 장점은 다음과 같다.

복잡한 비동기 코드를 깔끔하고 쉽게 만들 수 있는 방법을 제공한다. Chaining 을 통해 값을 전달하거나 연속된 일련의 작업을 처리할 수 있다. Error handling에 대한 처리를 깔끔하게 할 수 있다. Promise를 구현한 라이브러리에는 대표적으로 Q, RSVP, bluebird가 있다. Sequelize는 이중에서도 bluebird 라이브러리를 살짝 수정한 버전을 사용하고 있다. Promise를 비동기작업을 제어하는 방식으로 사용하는 만큼 Promise에 대해 알고 있는 부분이 많다면 Sequelize의 이용도 한결 수월해진다.

  • 설치

    npm install sequelize

    MySQL을 기본적으로 포함하지 않고 있으므로 따로 설치해주어야한다.

    npm install mysql2

    Docs
    참조

ODM(Mongoose) vs ORM(Sequelize)

  1. ORM이란?
    Object Relational Mapping으로 App과 DB를 Mapping시켜주는 도구이다. 한층더 추상화된 layer에서 Database에 대한 작업을 할 수 있게 해준다. ORM을 사용함으로써 얻는 장단점(pros and cons)은 다음과 같다.

    • Pros of ORM
      특정 DBMS에 종속되지 않는다. SQL문이 코드에 들어가지 않아 깔끔한 코드를 유지할 수 있다. ORM이 nesting데이터를 바인딩해준다.

    • Conf of ORM
      RAW query에 비해 performance가 느리다. Query tuning이 힘들다. 서비스가 복잡해 질수록 ORM으로 할 수 있는 작업의 범위에 한계가 있다.

      Wiki

  1. ODM(Object Data Mapping)?
    ODM을 사용하면 코드의 개체와 필요한 경우 데이터의 document 표현간에 변환 할 수 있습니다.
    JSONB는 MongoDB에서 사용하는 JSON 표기법 문서를 이진으로 저장한 형식을 말합니다.
    mongoose는 자바의 JPA/Hibernate/Mybatis와 같은 OR Mapper와 같은 개념입니다.
    또한 객체 표기법을 Document 표기법으로 변환하기 위해 JSON 또는 JSONB API를 사용합니다.
    ORM은 객체 지향 프로그래밍 언어를 사용하여 호환되지 않는 유형 시스템간에 데이터를 변환하는 프로그래밍 기술입니다.

    ODM vs ORM
    StackOverFlow

Insert Error(DB)

'Node.js > Multiple OS' 카테고리의 다른 글

5장. Google API  (0) 2018.01.01
4장. Yeoman  (0) 2018.01.01
3장. BSON이란?  (0) 2017.12.05
1장. express & 몽고DB 설치  (0) 2017.12.03
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'








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 > Multiple OS' 카테고리의 다른 글

5장. Google API  (0) 2018.01.01
4장. Yeoman  (0) 2018.01.01
3장. BSON이란?  (0) 2017.12.05
2장. MySQL 연동 & Template 및 미들웨어  (0) 2017.12.05

+ Recent posts