개발/Javascript
-
[Node.js] Node.js에서 빠르고 쉽게 API서버 만들기 - 4개발/Javascript 2019. 3. 3. 03:32
Node.js에서 빠르고 쉽게 API서버 만들기 - 4지난 포스팅에서는, 라우터에 POST 방식의 API를 만들어보고, 테스트를 해보았습니다 :)Node.js에서 빠르고 쉽게 API서버 만들기 - 3https://hanswsw.tistory.com/20 현재 프로젝트의 구조는, 라우터 폴더 내의 index.js 에서, 모든 API의 정의와 처리를 모두 담당하고 있습니다.하지만, 계속 이 구조로 API를 추가하다 보면, 가독성의 측면과 유지보수적인 측면에서 비효율적일 수 있습니다.요번 포스팅에서는, 라우터에서는 API의 URL만 정의하도록 하고, 실질적인 요청에 대한 처리는 컨트롤러를 만들어서 처리하도록 구조를 바꿔보도록 하겠습니다 :) 컨트롤러 생성요청에 대한 처리를 하는 컨트롤러를 만들기 위해, 프로젝..
-
[Node.js] Node.js에서 빠르고 쉽게 API서버 만들기 - 3개발/Javascript 2019. 3. 2. 16:34
Node.js에서 빠르고 쉽게 API서버 만들기 - 3 지난 포스팅에서는, 라우터에 GET 요청을 처리하는 API를 추가하고, postman으로 테스트를 해보는 과정을 설명했습니다.Node.js에서 빠르고 쉽게 API서버 만들기 - 2https://hanswsw.tistory.com/19 하지만, 대부분의 API는, 클라이언트가 요청한 request의 body에 따라 처리를 해서 응답하는 경우가 많습니다.이번 포스팅에서는, POST 방식의 요청을 처리하는 API를 만들어 보겠습니다 :)routes/index.js기본적으로 새로운 API를 추가하는 방식은 지난 포스팅과 동일합니다. 해당 라우터에 API를 추가하면 되는데, 지난번에 진행중이던 routes/index.js에 이어서 진행해보겠습니다! 현재 ro..
-
[Node.js] Node.js에서 빠르고 쉽게 API서버 만들기 - 2개발/Javascript 2019. 3. 2. 15:47
Node.js에서 빠르고 쉽게 API서버 만들기 - 2지난 포스팅에 이어서, 본격적으로 API서버를 만들어서 테스트를 해봅시다 :)Node.js에서 쉽게 API서버 만들기 - 1https://hanswsw.tistory.com/18파일 구조본격적인 작업에 앞서, 현재 프로젝트의 구조에 대해 잠깐 이야기를 하도록 하겠습니다.현재 구조이전에도 언급했듯이, express-generator을 통해 프로젝트를 생성하면, 라우터를 포함한 기본적인 구조와 파일을 자동으로 생성해 줍니다. 이중에서, 실질적인 웹 서버 구축에 관한 파일은 bin/www와 app.js가 담당하고 있습니다.bin/www는 app.js에서 정의한 express에 관한 설정을 받아서 서버를 실행하게 되는데, app.js에선 어떤 설정이 되어있나..
-
[Node.js] Node.js에서 빠르고 쉽게 API서버 만들기 - 1개발/Javascript 2019. 3. 2. 01:46
Node.js에서 쉽게 API서버 만들기 - 1가장 빠르고 쉽게 API서버를 구축할 수 있는 방법 중 하나는 Node.js의 Express 프레임워크를 이용하는 것이라고 생각합니다. 이 포스팅에서는, 쉽고 빠르게 Node.js 의 Express 프레임워크 환경에서 API서버를 구축하는 과정을 보여드리고자 합니다!Node.js 설치Node.js는 공식 홈페이지에서 쉽게 설치가 가능합니다 :)https://nodejs.org/en/설치가 완료되면, node와 npm의 버젼확인을 통해 정상적으로 설치가 됐는지 확인해봅시다!node --versionnpm --versionExpress-generator 설치직접 서버 구축에 필요한 파일들을 생성해주고 작성하는 것도 좋은 방법이지만, express-generato..
-
[Node.js] node.js 크롤링 방지 우회하기(네이버 크롤링)개발/Javascript 2018. 11. 19. 23:52
node.js 크롤링 방지 우회하기(네이버 크롤링).md 웹 크롤링을 이용하는 프로젝트를 진행하다보면, 네이버, 구글, 다음과 같은 대형 포털사이트를 크롤링하여 정보를 얻는 경우가 많습니다. node.js환경에서 웹 크롤링 하기(cheerio-httpcli) https://hanswsw.tistory.com/6 그런데, 원래 하던대로 크롤링을 해도, 원하는 결과값을 얻지 못할 때가 있습니다. 물론 코드가 잘못됐거나, 크롤링할 selector을 잘못 지정했을 수도 있지만, 네이버같은 대형 포털사이트의 경우에는, 웹서버에서 크롤링 봇을 탐지해서 차단했을 가능성이 높습니다. 네이버에서 차단된 경우, "검색 서비스 이용이 제한되었습니다." 라는 문구가 보입니다. 이러한 경우, 간단한 헤더 설정으로 크롤링 탐지를..
-
[Node.js] node.js환경에서 웹 크롤링 하기(cheerio-httpcli)개발/Javascript 2018. 11. 19. 00:05
웹 크롤링(웹 스크래핑)은, 웹 페이지의 경로를 통해 HTML 정보를 가져와서, 파싱을 통해 필요한 정보만 가공하는 것을 의미합니다. 대표적인 예로, 네이버 실시간 검색어 결과를 가져온다던지, 실시간 환율이나 주식 정보를 가져와서 이걸로 어떠한 프로그램을 만드는 것을 예로 들 수 있습니다. 대표적인 웹 크롤링 라이브러리는 python 환경의 bs4를 예로 들 수 있습니다. 그러나, 이번 포스팅에서는 node.js 환경에서도 쉽게 웹 크롤링을 할 수 있게 하는 모듈을 소개하고자 합니다. 사실, node.js 환경에서도 크롤링을 가능케하는 모듈은 여러가지가 있습니다. 대표적으로, cheerio가 있지만, 제가 사용해본 결과 가장 간단하게 사용할 수 있는 cheerio-httpcli 모듈을 예로 들겠습니다. ..
-
[Node.js] moment.js로 날짜(date)관련 작업을 쉽게하기개발/Javascript 2018. 11. 18. 22:37
JS에서 날짜 관련 작업을 할 때, 아마 가장 유명하고 유용하게 사용되어지는 라이브러리는moment.js가 아닐까 싶습니다. JS에 기본적으로 내장되어있는 Date개체를 불러와서, 날짜 관련 작업을 해도 되지만, 다양한 형식으로 날짜나 시간 형식을 파싱하고 싶거나, 날짜와 관련된 계산을 하고 싶을 때에는, 기본 Date개체를 불러와서 이용하는 것은 불편하다는 생각이 들 때가 많습니다. 그래서, moment.js를 이용해서 편리하게 날짜나 시간을 다루는 방법을 소개해드리고자 합니다. 설치 1npm install momentcs 기본 날짜 형식 출력하기 1234var moment = require('moment');moment().format(); //2018-11-18T22:19:20+09:00moment..
-
[Node.js] mysql을 쉽게 동기식으로 사용해보자! (sync-mysql)개발/Javascript 2018. 11. 11. 21:59
요번 포스팅에서는,Node.js에서 mysql을 사용하는 경우, 아주 간단한 방법으로 mysql의 쿼리를 동기식으로 처리할 수 있는 모듈을 소개해드리고자 합니다. 이전 포스팅에서 언급했듯이, node.js에서 함수는 비동기적이게 작동합니다.async모듈을 통해 동기식으로 처리해보자https://hanswsw.tistory.com/2?category=766598 그래서, 동기식으로 처리해야하는 경우가 있으면,async/await ,promise, async 모듈 등을 이용해서 처리를 하곤 합니다. 하지만, DB를 이용하는 경우, 쿼리문 여러개를 중첩해야하는 경우가 있거나,쿼리문의 결과를 가지고 복잡한 처리를 해야할 경우, 코드의 가독성이 굉장히 떨어지거나,동기식으로 처리하기 복잡해지는 면이 있습니다. 이 ..