728x90
728x90

nodejs 8

Node.js 레스트 API 업데이트 (카테고리, 베스트 탑) - Node.js REST API, Board-API Category, Best Top

블로그처럼 게시물들을 카테고리 별로 구분하여 표시되게 하고 카테고리 별로 좋아요(추천) 또는 조회 수가 많은 게시물 리스트를 가져오도록 하겠습니다. 게시판 카테고리 가져오기 1. C:\workspaces\nodeserver\testrestapi\boardapi.js 파일을 오픈하여 게시판 카테고리 전체를 리턴하는 라우터를 추가합니다. HTTP GET 메서드로 요청(Request)이 들어오면 게시판 카테고리 배열 전체를 리턴합니다. router.get('/categorys', function(req, res, next) { console.log("REST API Get Method - Read categoryList"); res.json({success:true, data:categoryList}); })..

Node.js 레스트 API 업데이트 (회원) - Node.js REST API, Member-API, Profile

블로그처럼 회원의 프로필과 별명(애칭)을 사용하여 게시물을 표현하기 위해서 프로필 이미지와 별명(애칭)을 추가하도록 하겠습니다. 회원 데이터 업데이트 및 회원 정보 함수 추가 1. 회원 정보에 추가될 프로필 이미지들이 저장되는 폴더를 생성합니다. C:\workspaces\nodeserver\testrestapi\public\asset 폴더에 member 폴더와 member 폴더 안에 profile 폴더를 생성합니다. 생성된 폴더에 회원 정보에서 사용할 프로필 이미지를 추가합니다. 2. C:\workspaces\nodeserver\testrestapi\memberapi.js 파일을 오픈하여 회원 배열에 있는 초기 데이터에 정보와 회원을 추가합니다. 초기 데이터에 프로필 이미지를 profile로 추가하고 별..

Node.js 레스트 API 모듈화 (정렬, 필터, 페이지네이션) - Node.js REST API, Board-API Module, export, require

boardapi에서 사용하는 정렬, 필터, 페이지네이션을 모듈화하여 별도의 js 파일로 분리하고 require() 메서드로 모듈을 불러와 사용하겠습니다. 레스트 API 테스트를 위해 Datebase 없이 배열 기반으로 데이터를 관리하기 때문에 API를 처리하기 위해서 정렬과 필터가 필요합니다. Datebase로 연동하여 사용하시는 분들에게는 필요 없는 부분입니다. Module(모듈) 구조에 대해서 간단하게 설명하겠습니다. Module(모듈) 구조 module.export로 내보내고 require() 메서드로 모듈을 불러와 사용합니다. module.export로 함수, 객체, 원시 값들을 묶어서 내보내거나 개별로 내보낼 수 있습니다. // test.js 파일 // 원의 넓이 구하기 함수 const getC..

Node.js 레스트 API 데이터 업데이트(내용, 이미지, 카테고리, 조회 수) - Node.js REST API, Board-API Data Update

먼저 router.get('/') 라우터에서 페이지네이션 처리 코딩과 정렬 처리 코딩이 있어 복잡해 보입니다. 그래서 페이지네이션 처리 코딩과 정렬 코딩을 분리하여 함수로 생성하고 적용하겠습니다. C:\workspaces\nodeserver\testrestapi\boardapi.js 파일을 오픈하여 페이지네이션 처리 코딩을 분리하여 함수로 생성합니다. // 게시물 페이지네이션 function pagination(totalCount, countPerPage, pageSize, pageNo) { // 페이지네이션 정보 var paginationInfo = {}; // 마지막 페이지 번호(전체 페이지 크기) var lastPageNo = Math.floor(totalCount / countPerPage) + ..

Node.js 레스트 API 조회 필터 - Node.js REST API Filtering, Multi-Column Filter

Filtering(필터링) ​ Database(데이터베이스)에서 지정된 칼럼을 비교문으로 필터링(쿼리 구문에서 Where 절) 하여 데이터를 반환합니다. ​ 레스트 API에서 필터링(Filtering)을 비교문으로 처리하기 위해서 Query String(쿼리 스트링)으로 URL 주소 뒤에 붙여서 사용합니다. ​ ​ REST API Multi-Column Filter(레스트 API 멀티 칼럼 필터) ​ 지정된 칼럼을 비교 값으로 비교합니다. http://localhost:9000/boards?writer=eq:tester1 -> 작성자가 'tester1'인 게시물만 필터는 다음과 같이 비교 대상 칼럼명과 비교문, 비교 값으로 구성됩니다. 칼럼명=비교문:비교값 조건문은 다음과 같습니다. 숫자, 날짜 비교문 ..

Node.js 레스트 API 조회 정렬 - Node.js REST API Sorting(Sort By, Order By), Multi-Column Sort

Sorting(정렬) ​ Database(데이터베이스)에서 지정된 칼럼을 기준으로 오름차순이나 내림차순으로 정렬(쿼리 구문에서 Order By 절) 하여 데이터를 반환합니다. ​ 레스트 API에서 정렬(Sorting)을 처리하기 위해서 Query String(쿼리 스트링)으로 URL 주소 뒤에 붙여서 사용합니다. ​ ​ REST API Column Sort(레스트 API 칼럼 정렬) ​ 기준 칼럼(sortby) 기준 칼럼(sortby)은 정렬할 칼럼을 지정합니다. ​ 정렬 방법(orderby) 정렬 방법(orderby)은 기준 칼럼(sortby)을 오름차순이나 내림차순으로 정렬 방법을 설정합니다. http://localhost:9000/boards?sortby=writer&orderby=desc -> 작..

Node.js 레스트 API 페이지네이션(구현 정보) - Node.js REST API Pagination Implementation information

레스트 API 페이징(Paging) 처리 후 Vue나 JSP, ASP, PHP, Javascript에서 게시판의 페이지네이션(Pagination)을 구현하기 위해서는 전체 크기, 전체 페이지 크기, 페이지 사이즈 등 추가 정보들이 필요합니다. 그럼 페이지네이션(Pagination) 구현에 필요한 정보들을 계산하여 라우터(router)에서 데이터와 함께 리턴하도록 처리하겠습니다. ​ ​ 페이지네이션(Pagination) 정보 객체 추가 ​ 1. C:\workspaces\nodeserver\testrestapi\boardapi.js 파일을 오픈하여 게시판 배열 전체를 리턴하는 라우터(router)에 추가합니다. ​ 전체 페이지 크기(마지막 페이지 번호) 전체 페이지 크기는 전체 크기를 페이지 크기로 나누고 ..

Node.js 레스트 API 페이지네이션(페이징) - Node.js REST API Pagination(Paging)

Pagination(페이지네이션), Paging(페이징), Page(페이지) ​ Database(데이터베이스)에서 페이징(Paging) 없이 데이터를 가져오면 수십 건부터 수백만 건까지 데이터를 반환하여 문제(DB 부하, 서버 부하, 네트워크 트래픽 부하 등)가 발생합니다. 그래서 데이터를 가져오기 전에 한 번에 가져올 데이터의 크기를 정해서 나누어서 가져오게 해야 합니다. ​ 이렇게 일정한 크기로 데이터를 나누는 것을 페이징(Paging)이라고 하고 일정한 크기를 가진 데이터를 페이지(Page)라고 합니다. 그리고 나누어진 페이지를 이전 페이지나 다음 페이지 또는 특정 페이지로 이동할 수 있게 처리하는 것을 페이지네이션(Pagination)이라고 합니다. ​ 일반적인 게시판에서 페이지네이션(Pagina..

728x90
728x90