All
-
15장 passport 모듈을 이용한 사용자 인증 (2)MeanStack (deprecated) 2016. 6. 26. 01:18
저번 장에 이어서 이제는 실제로 passport 모듈을 사용할 인증페이지 즉, 가입화면과 로그인페이지를 만들 것 이다. 먼저 app/views 폴더로 가서 signup.ejs 라는 가입화면을 만들어보자. Username : Email : UserID : Password : signup.ejs 뷰는 단순히 title 변수를 출력하는 ejs 태그와 messages 리스트 변수를 출력하는 EJS 루프를 포함한다. 그리고 바로 로그인 화면을 이어서 만들어보자. app/views 폴더로 가서 signin.ejs 라는 파일을 만들자 . UserID : Password : Signin 은 더욱 단순하다. Signup 과 같이 타이틀과 메시지를 출력하는 부분과 아이디, 패스워드를 받는 부분이 끝이다. 이제 모델과 뷰과..
-
14장 passport 모듈을 이용한 사용자 인증 (1)MeanStack (deprecated) 2016. 6. 23. 22:04
패스포트는 노드 모듈이고 , 패스포트라는 이름에서 알 수 있듯이 이는 사용자 인증을 위한 외부 모듈이다. 패스포트는 전략이라는 메커니즘을 사용해 개발자에게 다양한 인증 방식을 제공한다. 백문이 불여일견 , 일단 설치하고 직접 해보자 . 간단하게 설치를 하였다 . 이제 passport 를 사용하기에 앞서 passport 의 설정파일을 만들자. config 폴더로 가서 passport.js 파일을 만들자. 일단 파일만 만들고 지금은 잠시 놔두자. 이 파일을 불러오기 위해 StartApp.js 파일을 수정하자. process.env.NODE_ENV = process.env.NODE_ENV || 'development'; var express = require('./config/express_config'), ..
-
13장 mongoose(몽구스)를 이용한 index 활용, 데이터 검증MeanStack (deprecated) 2016. 6. 21. 22:43
이번에는 mongoose 모델에 색인을 넣어서 질의 검색을 좀 더 빠르게 하는 방법을 알아본다. 몽구스로 만든 모델에 색인을 넣는 방법은 간단하다. unique 라는 옵션을 주면 땡 이다. 예를 들어 username : {type : String ,trim : true ,unique : true } 위와 같은 식으로 옵션을 주면 username 은 RDBMS 에서 볼 수 있는 primary key 와 같은 형식이 된다. 여기에 추가로 보조 index 를 줄 수도 있는데 이 역시 index 라는 옵션을 주면 끝 이다. email : {type : String,index : true} 위 처럼 index 옵션을 주고 true 로 설정하면 이는 보조 색인이 되어 email 과 관련된 질의 를 할 경우 성능이 ..
-
12장 mongoose(몽구스) 를 이용한 스키마 확장MeanStack (deprecated) 2016. 6. 19. 22:19
이번 장에서는 Mongoose 로 만든 모델을 확장 시켜 보겠다. 이전 장에서 만든 모델에 생성날짜 속성를 추가하고 싶으며 , 거기다 생성날짜는 데이터가 생성될 때 기존 RDBMS 처럼 현재 시간으로 default 값을 주고 싶다면 어떻게 해야 할까? 이를 구현 하기 위해 이전에 만든 모델을 변경하자. app/models 폴더로 가서 user.server.model.js 파일의 코드를 바꿔보자. var mongoose = require('mongoose'), Schema = mongoose.Schema; var UserSchema = new Schema({ username : String , userid : String , password : String , email : String , created ..
-
11장 mongoose (몽구스) 를 이용한 MongoDB 스키마 생성, CRUD 작업 (2)MeanStack (deprecated) 2016. 6. 16. 23:40
10장에 이어서 mongoose 를 이용한 CRUD 작업을 이어가겠다. 이번엔 모든 사용자가 아닌 findOne() 단일 사용자를 찾는 메소드를 만들겠다. 먼저 app/controllers 폴더로 가서 users.server.controller.js 파일의 끝에 다음 코드를 수정하자. exports.read = function(req,res) { res.json(req.user); }; exports.userByID = function(req,res,next,id) { User.findOne({ _id : id }, function(err, user) { if(err) { return next(err); }else{ req.user = user; next(); } }) } findOne 을 할 때는 부분..
-
10장 mongoose (몽구스) 를 이용한 MongoDB 스키마 생성, CRUD 작업 (1)MeanStack (deprecated) 2016. 6. 16. 00:40
이번엔 mongoose 를 이용해서 MongoDB 스키마를 만들어보겠다. MongoDB는 collection 을 사용해 데이터를 저장하기 때문에 궂이 스키마를 정의해 document 의 구조가 동일하게만들 필요는 없지만, 살아가다 보면 종종(?) document 가 유사 할 필요가 있다. mongoose 는 Schema 객체를 사용해 MongoDB의 Model 을 정의한다. 그럼 바로 Schema를 정의해보자. 새로운 Model 을 정의하기 위해 app/models 폴더로 가서 user.server.model.js 파일을 생성하고 , 코드를 작성하자. var mongoose = require('mongoose'), Schema = mongoose.Schema; var UserSchema = new Sch..
-
9장 mongoose (몽구스) 를 이용한 Mongodb 연결MeanStack (deprecated) 2016. 6. 14. 23:41
Mongoose (몽구스) 는 노드 모듈이며 개발자에게 객체를 모델링하고 객체를 MongoDB 다큐먼트로 저장하는 능력을 제공한다. 기본적으로 MongoDB는 스키마가 없는 데이터베이스지만 몽구스는 몽구스 모델을 사용할 때엄격하고 느슨한 스키마 접근 방법 양쪽을 모두 즐기는 기회를 제공한다. 자 먼저 mongoose 를 설치하자 . { "name" : "test", "version" : "1.0.0", "description" : "", "main" : "index.js", "dependencies" : { "body-parser" : "^1.15.1", "compression" : "^1.6.2", "ejs" : "~1.0.0", "express" : "^4.13.4", "express-session"..
-
프로토타입 (Prototype) 1부Javascript 2016. 6. 13. 23:05
이번엔 Closure 와 함께 Javascript 의 또 다른 중요 특성인 Prototype 에 대하여 알아보자. 명세에 따르면 자바스크립트 객체는 Prototype 이라는 내부 속성이 있고 이는 다른 객체를 참조하는 단순 레퍼런스로 사용한다. var myObject = { a: 2 } myObject.a; //2 위 코드에서 myobject.a 가 호출 될 때 GET 이 호출된다. GET 은 기본적으로 그 객체 자체에 해당 속성이 존재하는지 찾아보고 존재하면 그 속성을 사용한다.하지만 myobject에 a란 속성이 없으면 다음 관심사는 이 객체의 prototype 링크를 찾아가며 수색을 한다. var anotherProject = { a : 2 }; var myObject = Object.create ..