본문 바로가기
  • 실행력이 모든걸 결정한다
반응형

Node.js13

[Express] 예제로 Router 쉽게 이해하기 만약 처리해야 할 요청이 무수히 많아진다면, 이 요청들을 한 파일에 관리하는 것은 쉽지 않을 것이다. 그렇다면 요청들을 어떻게 파일로 분리할 수 있을까? 간단한 예제를 준비해보았다. 목표 : 이 15개의 이 요청들을 알파벳별로 나눠서 각각 파일로 저장하기 -> (/a/1, /a/2, /a/3), (/b/1, /b/2, /b/3), (/c/1, /c/2, /c/3), (/d/1, /d/2, /d/3), (/e/1, /e/2, /e/3) const express = require('express') const ejs = require('ejs') const app = express() const router = express.Router() app.set("view engine", "ejs") app.use.. 2021. 7. 29.
[Express] 에러 처리 HTTP 상태 코드별로 에러 처리를 할 수도 있다. 다른 말로는, 에러 페이지를 커스터마이징한다고도 할 수 있을 것 같다. ※ HTTP 상태 코드 모음 https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C HTTP 상태 코드 - 위키백과, 우리 모두의 백과사전 아래는 HTTP(하이퍼텍스트 전송 프로토콜) 응답 상태 코드의 목록이다. IANA가 현재 공식 HTTP 상태 코드 레지스트리를 관리하고 있다. 모든 HTTP 응답 코드는 5개의 클래스(분류)로 구분된다. 상태 코 ko.wikipedia.org 다음과 같은 방법으로, 특정 상태 시 여러분이 커스터마이징한 페이지로 이동시킬 수 있다. res.status([HTTP 상태 코드].. 2021. 7. 29.
[Express] Compression / app.use() / 정적 파일 1. Compression Compression은 웹 사이트를 gzip으로 압축시켜서 로딩 속도가 빨라지게 도와주는 미들웨어다. 압축을 푸는 과정이 추가될지라도, 규모가 큰 웹 애플리케이션에서는 상당한 성능 상승효과를 기대할 수 있다. 설치 npm install compression --save 적용 const express = require('express') const compression = require('compression'); //★ const app = express() ... app.use(compression()); //★ 2. app.use() const express = require('express') ... const app = express() app.use(bodyParser.. 2021. 7. 28.
[Express] View 처리 1. ejs 템플릿 엔진 소개 ejs는 Embedded Javascript의 줄임말로, HTML 코드에 Javascript 코드를 섞어 쓸 수 있는 Template이다. HTML 코드에 자바스크립트 문법의 조건문, 반복문, 변수 등을 추가할 수 있기 때문에 동적인 페이지를 만들기 좋다. 2. ejs 설치 다음 명령어로 ejs를 설치한다. npm install ejs --save 3. ejs 적용 const express = require('express') const ejs = require('ejs') //★ const app = express() app.set("view engine", "ejs") //★ ... 4. 예제 ejs를 사용한 간단한 view 처리 예제를 준비해봤다. 1) app.js 생.. 2021. 7. 27.
[Express] Get, Post 데이터 받기 / 동적 URL 처리 1. Get 데이터 받기 express 객체의 get 메소드를 사용해야 한다. const express = require('express') const app = express() app.get('/get_test', function(req,res){ var id = req.query.id; var password = req.query.password; res.send(`your id is ${id} and your password is ${password}`); }) app.listen(3000, ()=>console.log('Example app listening on port 3000!')) req.query는 querystring을 받는다. 결과 2. Post 데이터 받기 express 객체의 p.. 2021. 7. 26.
[Express] Express 소개 / starter 프로젝트 생성 1. Express란? Node.js기반의 Web Framework들 중 하나 2. Node.js 설치 Express는 Node.js기반의 Web Framework이기 때문에 Node.js가 설치되어 있어야 한다. 아래 링크에서 다운로드를 진행하면 된다. https://nodejs.org/ko/download/ 다운로드 | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 터미널에 node를 입력했을 때, 다음과 같이 버전이 출력된다면 Node.js가 성공적으로 설치된 것이다. 3. Express 설치 터미널에 다음 명령어를 입력하여 Express를 설치한다. npm install expre.. 2021. 7. 25.
[Node.js] request, cheerio를 이용한 웹크롤링 이번 포스팅에서는 Node.js에서 request, cheerio 모듈을 이용하여, 백준 온라인 저지 사이트에 있는 특정 문제들의 정답률 데이터를 모두 긁어와서 평균까지 계산해주는 크롤링 봇 구현에 대해 다룰 것이다. 지나친 크롤링은 웹사이트에 트래픽을 줄 수 있으므로 가볍게 모든문제 1페이지에 있는 문제번호 1000~1099까지 총 100문제의 정답률 데이터들만 추출해보자. 프로젝트 폴더 내에 request, cheerio 모듈을 설치해줘야 한다. npm install request --save npm install cheerio --save html코드를 가져오고 싶은 사이트의 url을 request의 매개변수에 넣고, let $ = cheerio.load(body) 로 html코드를 최종적으로 세팅.. 2020. 10. 21.
[Node.js] 객체를 파일 단위로 관리하기 객체를 파일 단위로 관리하면 유지보수에 큰 도움이 된다. 파일화의 유무에 따른 차이점을 명확히 확인하려면 아래 소스 코드의 if(_url =='/')문에 집중하면 된다. 이 if문 안의 내용 외에는 달라진 것이 없다. var http = require('http'); var fs = require('fs'); var qs = require('querystring'); var app = http.createServer(function(request,response){ var _url = request.url; if(_url == '/'){ var template=` `; response.writeHead(200); response.end(template); } else if(_url=='/favicon.i.. 2020. 10. 19.
[Node.js] 파일 삭제 CRUD에서 C(생성),R(읽기),U(업데이트) 는 아래 포스팅에서 다뤘다. kimcoder.tistory.com/150 [Node.js] 파일생성/파일명변경, redirection 맨 밑에 첨부한 소스 코드에서, 해당하는 부분에 주석으로 표시해두었으므로 참고하면 된다. 1. 파일 생성 부분 웹사이트에서 writefile 링크를 누르면 number디렉토리에 FOUR 이라는 이름의 텍스트 �� kimcoder.tistory.com CRUD의 마지막 D에 해당하는 삭제를 다뤄볼 것이다. 소스 코드는 평소와 같이 맨 밑에 첨부하였다. 로컬 웹페이지에서 title이라고 쓰여있는 텍스트에 삭제하고자 하는 파일명을 입력하고, delete 버튼을 누르면 number디렉토리에 있는 해당 파일이 삭제되는 소스 코드를 작.. 2020. 10. 15.