안녕세계
1. Passport-Facebook (웹 어플리케이션) 1) 최초요청 GET /auth/facebook,2) authenticate('facebook') 이 되어있어서 FacebookStrategy 동작해서 FB에 요청하면 FB로부터 로그인 화면을 WS가 응답 받는다.3) 이 정보를 WB에 응답한다 (FB 로그인 화면이 보인다) - 서버는 중개역할4) 로그인하면 FB이랑 통신을 한다.5) 통신을해서 결과(응답)를 WS에게 요청을 준다. --> 이때 사용하는게 GET /auth/facebook/callback 이다 여기 뒤에 access 토근이 이 뒤에 붙은거임, 이거를 url 리다이렉트라고 한다.6) 이 토큰을 가지고 FB로 간다. 그리고 FB에서 프로필정보를 가지고온다.7) 맨 마지막에 처리한 메시지..
HTTP => stateless 인데, 이를 stateful하게 만드는 기술은 cookie 와 session1) HTTP 상태유지 전략2) 저장의 위치가 다를 뿐 (하나는 서버(session), 하나는 클라이언트(cookie)) 클라이언트가 요청하면 req, res 객체가가 생긴다. (한 사이클은 req, res는 응답하면 사라진다)다음 요청들어오면 req, res가 만들어진다.요청이 들어 올때마다 req, res 새롭게 만들어진다. 세션은 서버측의 session table에 내부적으로 구성이되고 여기에 session id 라는 것이 존재하고 이에 대해서 객체를 담아둬서 쓸 수 있도록 하는 정보이다. 이 객체를 참조하기위한 것을 session이라고 한다. 이 session을 관리를 해주고 request ..
* MVC (Model View Contorller Pattern) : 느슨한 결합[장점]1. 유지보수가 쉽다.2. 모델의 교체가 쉽다. [ GitHub ]http://git-scm.com * Windows에는 default로 설치 되어 있지 않으므로 git-scm Downloads for Windows를 통해 다운로드 configure -> settings check out from Version Control -> github해서 repository clone 해서 가져 옴 * 올리는 작업 push* 변경 사항 commit change http://passportjs.org/
* REST API 설계할 때 가장 중요한 것은? collection 을 찾아내는 것 (엔티티와 1:1로 매핑되지 않는다) - collection (마운트 포인트 4개)1) orders2) customers3) branches4) menus - Express 서버 기초 생성 방법 - 0) 프로젝트 생성 1) 마운트 4개 생성 index.js 활용var express = require('express'); var router = express.Router(); router.get('/', function(req, res, next) { res.send({ message: 'orders' }); }); module.exports = router;※ render -> send로 변경 2) app.js에서 모듈..
npm init -> package.json 생성 helloexpress│├ bin│ └ www 1) express 프레임 워크 객체 모듈을 로딩 2)웹서버룰 그축│├ app.js 1)서비스 파일(서비스 코드를 가지고 있다 2) express 프레임 워크를 로딩 3) third party 모듈 로딩 4) URI와 확장모듈 매핑│ - 마운트 포인트하고 모듈을 매핑한다.├ routes (controllers) 1) 모듈을 배치 2) controller 역할 3) ├ index.js └ users.js - 마운프트 포인트에있는 패스하고 미들웨어를 매핑한다. 익스프레스 에서 사용하는 서비스 코드를 미들웨어라고 한다. 이것은 콜백이다. (REST API 구조) URL 함수 app.use 특정패스에서 이 미들웨어를..
- JS는 함수형 언어이므로 함수를 최대한 활용, 가독성을 늘려야 한다.- 사용자 입력값에 대한 default 설정이 중요 var async = require('async'); var fs = require('fs'); var path = require('path'); var srcPath = (process.argv[2] === undefined) ? path.join(__dirname, process.argv[2]) : __filename; var destPath = process.argv[3] || (srcPath + '.copy'); // __dirname : 프로그램이 위치한 경로 function readFile(callback) { var reader = fs.crea..
async collectionㄴ each : 두번째 매개변수가 병렬로 실행ㄴ eachSeries : 두번째 매개변수가 시리즈로 실행ㄴ map : 분류, 값에 태그를 붙여준다. n개의 원소를 가지고있으면 변형된 원소를 갖는다 (입출력개수가 같다)ㄴ filter iterator function 에 논리식이 true가 되는 원소만 결과객체에 넣는다 ( reject )ㄴ reduce : 맵에 썻던걸 이용해서 요약을하는 것, 결과를 줄이는 것 series : 결과 값들을 배열로 만들어서 done callback에서 출력 var async = require('async'); var uuid = require('uuid'); // 1 ~ 10 사이의 정수를 생성해 배열에 저장 var a..
project├app.js││ (dependencies 의존성)│├node_modules 노드 확장 모듈└package.json프로젝트에 대한 정보 ※ package.json- 프로젝트에 대한 정보를 담고있다.- 확장모듈의 의존성에 대한 정보를 관리한다.- npm init 명령어를 이용해서 만들 수 있다. ※ npm install [module_name] --save 옵션- package.json 의 dependencies에 확장 모듈 정보를 추가해준다. ※ package.json의 dependency에 있는 정보를 읽어서 npm 라이브러리를 설치할 수 있다. npm install nodemon -g변경하고 나면 다시 프로그램을 실행해야하는데 nodemon 명령어를 이용하면 변경하고 저장하고 실행까지 해..