일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자료구조
- 알고리즘
- url parsing
- 브루트포스
- nodejs
- spring
- Spring Boot
- Algorithm
- ELB
- 서버구축
- mysql
- 탐욕법
- 라우터
- java
- AWS
- 스터디
- 동적프로그래밍
- 백준알고리즘
- sort
- 완전탐색
- 백준
- 토이프로젝트
- BFS
- react
- 정렬
- EventListener
- 리액트
- EC2
- 다익스트라 알고리즘
- Router
- Today
- Total
목록nodejs (11)
공부하는 블로그
Multiple Statements 비동기 방식을 따르는 Node.js에서는 다중 쿼리를 처리하려면 하나의 쿼리문을 처리 후 콜백 함수를 계속 사용해서 처리해야 한다. 그러나 쿼리가 많아질수록 코드가 복잡해지므로 이를 간단히 하기 위해 mysql 모듈에는 다중쿼리를 한번에 처리할 수 있도록 지원한다. 1. mysql 모듈을 사용하기 위해 임포트 const mysql = require('mysql'); 2. DB 연결 객체 생성 const connection = mysql.createConnection( { host: 'ip', port: 'port_number', user: 'user_name', password: 'pwd', database: 'db_name', multipleStatements: tr..
React - Node.js 리액트를 클라이언트 사이드로, Node.js를 서버 사이드로 연동하는 방법에 대해 알아보자. 연동하는 방법은 여러가지가 존재하지만 이 포스팅에서는 'http-proxy-middleware'라는 미들 웨어를 이용하여 간편하게 프록시(Proxy)를 설정하는 방법을 이용한다. * Proxy : 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것. 클라이언트가 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해준다. 리액트 애플리케이션(localhost:3000)에서 프록시를 통해 구축된 Node.js 서버 사이드(localhost:3001/api)로 요청을 보내 데이터를 받아오는 방식이다. 따라서 두 개의 포트를 각각 클라이언트 사이드로, 서버 사이드로 할당하여 동시에..
Node.js - MySQL MySQL은 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)으로 기존의 파일 시스템보다 훨씬 효율적으로 데이터를 관리할 수 있다. Node.js와 MySQL을 연동하기 위해서는 기본적으로 컴퓨터에 MySQL이 설치되어 있어야 하며 npm을 이용하여 외장 모듈인 'mysql'을 설치해주어야 한다. ※ Node.js에서는 MySQL의 최신버전과의 연동을 지원하지 않는다. 따라서 MySQL을 설치할 때 인증 방법(Authentication Method)를 v8.0이 아닌 v5.x를 따르도록 해야한다. (2019.12.28 기준) MySQL | MySQL 설치 - Window 관계형 데이터베이스인 MySQL을 설치해보자. 아래의 링크는 MySQL Community 버전을 다..
Template Engine 템플릿 엔진(Templete Engine)은 PHP나 JSP처럼 동적인 결과를 정적인 파일(HTML)에 담기 위해 사용한다. 즉, 서버 코드인 Javascript로 연산된 결과를 변수에 넣고 변수를 뷰(view) 파일에서도 사용할 수 있도록 도와준다. 따라서 서버파일(app.js) 내에 HTML 코드를 쓰지 않아도 되므로 뷰와 서버 코드를 따로따로 관리할 수 있도록 해준다. 이러한 템플릿 엔진의 종류에는 pug(구 jade)와 ejs가 있다. 템플릿 엔진을 사용하기 위해서는 npm을 이용하여 사용할 엔진을 설치해주어야 한다. $ npm install pug $ npm install ejs 설치가 끝나면 사용할 템플릿 엔진을 서버에 등록하여 사용할 수 있다. app.set('v..
GET method GET 방식의 요청에서 파라미터를 전송하는 방법은 두 가지가 있다. 쿼리스트링(Querystring)이나 경로(Path)를 통하여 파라미터를 전달할 수 있다. 각각의 방법을 알아보자. Querystring 'req.param()'을 이용하여 쿼리스트링을 통해 요청된 파라미터를 받아낼 수 있다. app.get('/user', function (req, res) { var u_name = req.param('name'); var u_age = req.param('age'); res.send("User Name : " + u_name + " / User Age : " + u_age); }); 쿼리스트링의 id는 name과 age로 하여 보내고자 하는 데이터를 서버에 요청하자. 'http:/..
Routing 라우팅(Routing)은 URL 및 특정 HTTP 요청 방식(GET, POST)에 대한 클라이언트의 요청에 응답하는 방법을 선택하는 것이다. 각각의 라우터(Router)는 하나 이상의 핸들러 함수를 가질 수 있다. 만약 다수의 핸들러 함수를 지정해주려면 함수의 로직 끝에 꼭 'next()'를 붙여주도록 하자. 라우터를 정의하는 기본적인 방법은 요청 방식에 따라 'app.get()' 또는 'app.post()'이다. 두 메소드는 경로(path)와 핸들러 함수(handler funtion)을 파라미터로 받는다. // 여기서 app은 express의 인스턴스 app.get('/', function(req, res) { res.send('GET request to the root'); }); ap..
Express Express - Node.js 웹 애플리케이션 프레임워크 Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크 $ npm install express --save expressjs.com 익스프레스(Express)는 웹서버 구현을 보다 간편하게 하기 위한 Node.js의 프레임워크(Framework)로 프레임워크이다. 익스프레스 이외에도 Hapi와 Koa가 있지만 현재까지 가장 많이 사용되는 프레임워크는 익스프레스이다. 익스프레스는 가볍고 유연하게 웹 프레임워크를 구성할 수 있는 장점이 있다. 이는 자바스크립트 코드로 작성된 다양한 기능의 미들웨어(Middleware) 덕분이다. 기존에 서버 구축을 위해 사용하던 http 모듈을 기본으로 내장하고 있으며 라우팅(Routing)이 용이..
GET과 POST는 http 프로토콜을 이용해서 서버에 무언가를 전달할 때 사용하는 방식이다. Node.js에서 GET과 POST 방식 요청에 응답하는 방법을 알아보자. GET GET 방식은 서버로부터 정보를 조회하기 위해 설계된 메소드이다. GET은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고 URL의 Query String을 통해 전송된다. 따라서 URL에 데이터에 대한 정보가 그대로 노출되므로 데이터를 숨겨서 전달해야 될 경우(ex. 로그인 시 회원의 아이디와 비밀번호 등)에는 부적합하다고 할 수 있다. GET 요청은 URL의 Query String을 통해 전송되기 때문에 URL 모듈을 이용하여 URL을 파싱하면 손쉽게 전송된 데이터을 얻을 수 있다. 아래는 URL parsing에 관한 ..