본문 바로가기

nodejs37

[node.js] express로 REST API 서버 개발 [REST API 서버]- 자원에 대한 처리 관점으로 요청 - 응답 API 서버 만듬- 자원에 식별번호 부여- 자원에 대한 처리 : CRUD(HTTP 메서드), HTTP 사용 극대화 [HTTP 메서드]1) GET : 자원 조회2) POST: 자원 생성3) PUT: 자원 갱신4) DELETE: 자원 삭제 - express 어플리케이션 메서드로 구현되어있음 [HTTP 상태코드]- 1xx : 처리 중- 2xx : 성공(200, get/put), 작성됨(201, post), 내용 없음(204, delete)- 4xx : 잘못된 요청(400), 권한 없음(401), 잘못된 요청(404), 충돌(409)- 5xx : 서버 에러(500) [요청 URI 디자인 - 라우팅]- 서버 컴퓨터의 파일 디렉토리를 지칭하는 것이.. 2017. 6. 9.
[node.js] npm, package.json 제대로 알고 가기 [npm]- node package manager : 모듈 관리(설치, 업데이트, 삭제 등)하기위한 매니저 - npm으로 외부 모듈 설치 : node_modules 디렉토리에 저장, 우리가 설치한 외부 모듈이 의존 모듈까지 같이 설치함- node_modules는 따로 git 버젼 관리하지않음 : index.js 만 있으면 바로 실행 x, 사용하는 모듈 설치해야함- 요즘엔 페이스북에서 만든 yarn 이라는 패키지 매니저도 있음 : https://yarnpkg.com/lang/en/ [npm, package.json으로 쉽게 모듈 설치하기]1) npm init : package.json 생성 - 프로젝트 의존 모듈 관리(사용 모듈 네임, 버젼), 프로젝트 정보2) npm install 모듈명 --save :.. 2017. 6. 8.
[node.js] http 모듈로 간단하게 유저 API 서버 만들기 [알아야하는 것]- ES6 arrow function- Node.js module system : module, load- 먼저 보면 좋은 게시글 : [node.js] 기본 - processing model, module system, async : http://jinbroing.tistory.com/139 [API 서버]- 요청, 응답하는 서버 [사용할 내장 모듈 + 유저 API 서버 만들기]- http 모듈- 사용 방법: https://nodejs.org/dist/latest-v6.x/docs/api/http.htmlconst http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.creat.. 2017. 6. 5.
[node.js] 기본 - processing model, module system, async] [Node.js processing model]- 이벤트기반의 비동기 I/O(콜백) 프레임워크 1) 클라이언트가 보내는 요청을 모두 이벤트로 처리 : 이벤트 큐에 쌓기2) 이벤트 루프 : 이벤트 큐에 쌓인 이벤트를 하나하나 처리(싱글쓰레드) 후 요청 클라이언트에 응답3) 이벤트 : 가벼운 처리 / 무거운 처리(네트워크, 파일 읽고 쓰기 등)- 가벼운 처리 : 이벤트 루프 처리 - 무거운 처리 : 이벤트 루프가 Non-blocking Worker(C++)로 보내 처리 후 이벤트 형태로 큐에 다시 전달, 루프가 큐에서 뽑아 처리(응답) [모듈 시스템]- 모듈 : 일정 기능을 하는 코드 덩어리, 서비스를 구현할 때 하나의 소스코드로 만드는게 아니라 기능별로 모듈화해서 만듬- 브라우저 : window 객체(스코.. 2017. 6. 4.
[node.js] 모듈과 미들웨어 개념 [모듈과 미들웨어란]- 모듈 : 기본적으로 제공하는 기능 뿐 아니라 추가적으로 기능을 사용할 때 가져다 쓸 수 있는 라이브러리1) 내장 모듈 : nodejs에서 제공하는 모듈2) 확장 모듈 : nodejs 사용자들이 만들어낸 모듈 - 미들웨어 : 구조 내에서 중간 처리를 위한 함수(함수들의 꾸러미가 모듈)1) express 프레임워크에서 사용할 수 있는 중간 처리 목적의 소프트웨어 : 기본적인 express 구조 내에서 처리 목적으로 사용2) 요청에 대한 응답을 완수하기 전까지 중간중간 다양한 일을 처리할 수 있음3) 미들웨어 함수 생명주기 : request - response 응답을 주기로 종료 4) 미들웨어 함수 우선순위 : 먼저 로드되는 미들웨어 함수가 먼저 실행됨(코드 순서 중요) 12345678.. 2017. 5. 23.
[node.js]Supervisor로 웹서버 자동 재시작하기 [Supervisor의 역할]- static 디렉토리 내에 있는 이미지, 자바스크립트 등 파일은 수정하면 바로 반영됨- 그러나 그외 웹서버 관련 자바스크립트 파일은 수정을 해도 바로 반영되지않음, 서버 재시작을 해야함- Supervisor는 ctrl+c를 통해 웹서버 구동을 껐다가 다시 시작하는 행동을 개발자가 직접하지않아도 자동으로 하게끔 함- 사무 자동화랄까? [Supervisor 설치 및 실행]- Supervisor는 npm을 통해서 설치함 1) npm install supervisor -g - 슈퍼바이저를 설치하는데, 서버컴퓨터 전역에서 사용할 수 있도록 -g (옵션값)을 달아줌(어떠한 프로젝트간에 사용가능)- permission denied가 뜨면 sudo를 붙여 루트 권한으로 설치해줌 2) s.. 2017. 5. 15.
[node.js] express 로그인 정보 전달하기 [먼저 보면 좋은 게시글] - [웹기본개념] HTTP 그리고 REST API 다가가기 : http://jinbroing.tistory.com/96 (HTTP 메서드 참고)- [node.js] express 라우팅, CRUD / 쿼리스트링 : http://jinbroing.tistory.com/97 (라우팅이란 참고)- [node.js] express 그리고 템플릿엔진 ejs : http://jinbroing.tistory.com/107 [서버에 요청할 때 구분해서 쓰자]- 서버에 정보를 요청(Read)할 때는 GET- 서버에 클라이언트가 정보를 전달할 때에는 POST [서버로 데이터를 전송할땐]- 클라이언트가 서버로 데이터를 전송할 땐 POST- express POST 방식 구현하기 [서버로 데이터 전송.. 2017. 5. 15.
[node.js] express 그리고 템플릿엔진 ejs [반드시 먼저 봐야할 게시글]1) [node.js] express 기본구조 생성 : http://jinbroing.tistory.com/106 [템플릿엔진이란, 템플릿엔진을 사용하면 어디가 좋아]- 정적인 파일만을 서비스한다면 필요없음- 동적인 결과를 정적인 파일에 담기위해 사용함- 풀어 설명하자면, 자바스크립트 코드로 연산된 결과를 변수에 넣고 변수를 뷰 파일에서도 사용할 수 있게끔 함- 템플릿엔진 사용 이유 : 클라이언트 요청에 따라 웹문서 들어가는 내용(결과)이 달라질 수 있어서 정적인 부분과 동적인 부분을 따로 하기위해 사용- app.js 내 html 코드를 쓰지않아도 됨- 뷰 파일과 자바스크립트 코드를 한 파일에 정의하지않고 따로따로 사용할 수 있음 - 자바스크립트로 연산된 결과를 뷰 파일에 쉽.. 2017. 5. 1.
[node.js] express 기본구조 생성 [express 쉽게 구조 생성하기 - 리눅스 환경]1) npm install -g express-generator (오류가 난다면 sudo를 붙여서) : npm을 통해 express 구조 생성기를 다운받음2) 다운로드 후 express -h 를 콘솔창에 입력하여 generator 명령어가 정상동작하는지 확인=> -h 은 옵션값으로 어떤 작업을 할 수 있는지 알 수 있음=> generator로 어떻게 구조를 생성할 수 있는지 나옴 : Usage 참고 3) express 옵션값 디렉토리명 순으로 입력하여 구조 생성하기4) express myapp : 우선 아무런 옵션값 없이 생성해보기5) cd myapp : 해당 디렉토리로 이동6) npm install : express 프로젝트에 필요한 모듈을 다운로드받.. 2017. 4. 30.
[node.js] express 라우팅, CRUD / 쿼리스트링 [목표]- 라우팅이 무엇인지 제대로 이해하기- HTTP 메서드 개념 알아본 것 실제로 써보기- CRUD 구현하기 [먼저 보면 좋은 것들]- HTTP 메서드 + REST API 다가가기 : http://jinbroing.tistory.com/96- CRUD : http://jinbroing.tistory.com/24 [라우팅이란]- 길을 정하는 것- 클라이언트의 요청(request)에 대한 응답(response)를 정하는 것- URL으로 클라이언트가 요청할 때 어떤 응답을 할 것인지 정하는 것- HTTP method(GET, POST, PUT, DELETE) 구분 필요- 라우팅 해주지 않은 URL은 "CANNOT 주소" 페이지가 출력(404페이지 커스텀할 필요O) [HTTP 메서드에 따라 express 라.. 2017. 4. 20.