본문 바로가기

Dev.BackEnd/Node.js

(13)
[열두번째] Node.js Authentication / Passport JS (포스팅에 앞서 이 포스팅은 생활코딩 강의를 듣고 만든 포스팅임을 밝힙니다.) 웹 사이트를 만드는데 있어서 가장 중요한 부분인 '인증'에 대해서 포스팅 하고자 한다.궁극적으로는 Facebook을 사용하여 로그인을 하는 방법을 구현하였다.Federation Authentication 이라고 부른다.요즘 대부분의 웹 사이트에서는 사용자의 정보를 갖고 있는 것이 적잖이 부담스러워 이 방식을 사용한다.이를 구현하기 위해 passport 모듈을 사용하였다. 사용자의 패스워드를 암호화하여 저장하는 방식에는 md5, sha256 등 많은 모듈이 있지만그 하나 하나를 다루지 않고 passport 모듈을 이용한 방법을 소개하고자 한다.passport 모듈을 사용하면 여러 인증방식을 통합할 수 있다.결국엔 session ..
[열한번째] Node.js & MySQL 연동하여 간단한 웹 애플리케이션 사이트 만들기(스압) 10개의 포스팅으로 정말 Node의 기초와 프레임워크 express 기초에 대해 알아봤다.이 기초를 이용하여 관계형 데이터베이스(RDB) 중 가장 보편적으로 사용되고 있는MySQL을 연동시켜서 간단한 애플리케이션을 만들어보자.데이터 베이스 관련 포스팅은 추후 올라갈 예정이다.(본 포스팅은 생활코딩 수업의 내용을 바탕으로 하고 있습니다.) 기본적인 원리는 express로 라우팅을 해주면서 필요한 요소요소에 데이터베이스를 연동하여필요한 정보를 불러오고 사용자로부터 받은 정보를 저장하는 것이다. express 함수를 호출한다.express 함수를 다루기 편하게 app이란 객체로 객체화express 내장 모듈인 fs 모듈도 호출.mysql module 도 호출.mysql.createConnection()을 통해..
[열번째] Node.js 기본 / 클라이언트와 서버의 의사소통 방식 (GET & POST) II Post방식app.post('/form_receiver', function(req,res){ var title = req.body.title; var description = req.body.description; res.send(title+','+description);});res.send에 해당하는 부분이 /form_receiver에 출력될 것을 기대할 수 있다.그런데 에러가 뜬다.TypeError: Cannot read property 'title' of undefinedbody 가 존재하지 않는다고? API를 보니까Contains key-value pairs of data submitted in the request body. By default, it is undefined, and is pop..
[아홉번째] Node.js 기본 / 클라이언트와 서버의 의사소통 방식 (GET & POST) I 클라이언트와 서버의 의사소통 방식크게 두가지GET vs POST 기본이 get : 주소를 입력해서 어떠한 정보를 get한다.경우에 따라선 쿼리 스트링으로 정보를 요청하고 가져오기도 한다. 이것 역시 get 방식이다.서버에 요청하고 가져오는 방식을 말한다. post 방식은 사용자의 정보를 서버에 전송을 할 때 사용하는 방식.ex ) 아이디와 패스워드 or 작성한 글. 코드>doctype htmlhtml head meta(charset='utf-8') body form(action='/form_receiver' method='get') p input(type='text' name = 'title') p textarea(name = 'description') p input(type='submit')form.j..
[여덟번째] Node.js 기본 / 쿼리 스트링 Application의 기능을 다시 한 번 살펴볼 필요가 있다.입력에 따라서 출력을 하는(input)입력 -> Application -> 출력(output)어떠한 사용자의 조작이 있을 때 다른 것을 보여주는 것을 우린 애플리케이션이라고 한다. 다음과 같은 URL이 있다고 가정하자.http://a.com/topictopic을 URL의 구성요소 중 'path'라고 한다.topic으로 접속을 하게 되면 언제나 똑같은 결과를 보여준다. 경우를 나눠서 다른 결과를 보여주면 좋지 않을까이 때 쿼리 스트링을 이용한다.ex) http://a.com/topic?id=1id 값 1을 전달. 1에 해당하는 결과를 출력.물음표 뒤에 나타나는 것을 "쿼리 스트링"이라고 한다. 하나의 패스에서 다른 아이디값에 따라서 다른 화면을..
[일곱번째] Node.js 기본 / Template Engine, Jade 동적 파일 제공 템플릿 엔진어떠한 기술 '들'을 의미한다. 상품군 많은 훌륭한 템플릿 엔진들이 있지만 우선 Jade에 대해 알아보도록 하자. app.set('view engine','jade');express 와 jade 를 연결하는 코드로view engine 으로 jade를 사용하겠다는 뜻이다. app.set('views','./views')관습적으로 템플릿 파일을 views라고 명명한 폴더에 모아둔다.res.render('upload');이런식으로 views 폴더에 있는 파일을 렌더링 한다.소스코드를 가지고 와서 웹페이지를 만들어내는 것도 일종의 렌더링 Jade 문법을 알기 위해 홈페이지에 접속을 하게 되면 Main페이지에서 딱 두 개의 소스코드 페이지를 제공한다.http://jade-lang.com/doctype ..
[여섯번째] Node.js 기본 / 정적 파일 제공 정적 파일 제공일단, 각 문법적 요소 요소들에 대해서 무조건 알고 넘어가야 겠다는 강박증을 내려놓자.각 코드들을 레고 블럭처럼 생각하고 어떤 것을 하기위해 어떤 것이 필요하다라고패턴화로 기억하자. 정적인 파일이란 한번 만들어지면 변할 일이 없는 계속 똑같은 html문서 같은 것을 말한다.app.use(express.static('public'));.static 메소드는 정적인 파일이 위치할 디렉토리를 지정하는 기능을 갖고 있다.디렉토리 명은 관습적으로 public 이라고 한다.정적인 파일에 대해 변경된 사항에 대해서 노드 애플리케이션을 껐다가 다시 킬 필요 없다. API 문서를 살펴보면이미지, CSS 파일 및 JavaScript 파일과 같은 정적 파일을 제공하려면Express의 기본 제공 미들웨어 함수인..
[다섯번째] Node.js 기본 / Express 도입 express express 는 Node.js 에서 사용 가능한 프레임워크로 npm의 일종이다. 일단 express Framework 를 쓰지 않은 코드를 보자.const http = require('http'); const hostname = '127.0.0.1';const port = 1337; var server = http.createSever(function(req,res){res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World\n');}); server.listen(port, hostname, function(){ console.log('Server running at http://${hostname}:${port}..