Express의 query 객체의 사용 동적인 파일을 통해서 (app.js 에 직접 작성) 쿼리스트링 사용에 대해 살펴본다. url 내의 쿼리스트링을 가져오려면 req.query 를 사용해야한다. express api reference req.query 참고 복수의 쿼리스트링을 가져오는 것도 가능하다. app.get('/topic', function(req, res) { // url이 http://a.com/topic?id=1&name=siwa 일때 res.send(req.query.id+','+req.query.name); // 1,siwa 출력 }) HTML Parameter Passing 웹서버를 기동하였으면, 그러면 어떻게 HTML에서 parameter를 넘기는지 보자, HTML에서는 HTTP U..
URL 인코딩하는 이유 URL은 아스키코드로 이뤄져야하기 때문에 그 외의 문자는 “%”와 16진수 문자를 조합해 인코딩 한다는 것이다. 이것을이스케이프(escape) 처리된 url이라고도 한다. 노드에서도querystring모듈에서 제공하는 함수 중에는escape(),unescape()가 있어 문자열을 인코딩/디코딩할 수 있다. var qs = require('querystring'); var str = 'apple 쥬스'; var encodedStr = qs.escape(str); // 'apple%20%EC%A5%AC%EC%8A%A4' var decodedStr = qs.unescape(encodedStr); // 'apple 쥬스' assert.equal(str, decodedStr); 자 그럼 몇..
webserver 구동시키기 const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); }); Webserver 를 하나 만들고 Listen시킨다 모듈 = 부품 1. require 함수로 h..
WAS(Web Application Server)는 웹 컨테이너이다tomcat 아파치 는 웹서버 이다.결과 반환 해주는역할웹서버는 그렇다면 WAS만 쓰면 되지 어째서 웹서버를 따로 쓰느냐는 의문이 생길 수 있다. 그 이유는 목적이 다르기 때문이다. 웹 서버는 정적인 데이터를 처리하는 서버이다. 이미지나 단순 html파일과 같은 리소스를 제공하는 서버는 웹 서버를 통하면 WAS를 이용하는 것보다 빠르고 안정적이다(왜? 다른 글 소스로 써볼까?) WAS는 동적인 데이터를 처리하는 서버이다. DB와 연결되어 데이터를 주고 받거나 프로그램으로 데이터 조작이 필요한 경우에는 WAS를 활용 해야 한다
var express = require('express');var http = require('http');var app = express();app.set('port',process.env.PORT || 3000); 미들웨어는 중간 처리에서 가로채서 처리// use 는 미들 웨어 함수이다.app.use(function(req,res,next){console.log("first middle ware");// 200 은 정상응답//head를 보내겠다.res.writeHead(200, {Content-Type":text/html; charset=utf-8"res.end(" res result"); }); // MiddleWare 여러가지 사용해보기 next() 메소드는 그다음 미들웨어로응답을보낸다.app.u..
로그 파일 남기기console 객체의 log() 또는 error() 메소드 등을 호출 하면 로그를 출력 할 수 있다.양이 많아 진다면 로그를 어떻게 남기고 보관할 것인가? 로그를 남길 수 있도록 외부 모듈을 사용해서 이것을 해결 한다. winston 모듈 로 로그를 남기는 방법을 알아 볼것이다.winston 모듈 설치$ npm install winston --save $ npm install winston -daily-rotate-file --save $ npm install moment --save moment 모듈 = 시간을 다룰 수 있는 모듈이제 winston 모듈을 사용할 준비를 마쳤습니다. 로그 설정 var winston = require('winston'); // 로그 처리 모듈var wins..
파일 다루기 1. 노드의 파일 시스템은 파일을 다루는 기능, 디렉터리를 다루는 기능으로 구성되어 있다. 또한, 동기식 I/O(Input output), 비동기식 I/O 기능을 함께 제공한다. 2. 동기식 IO 는 파일 작업이 끝날 때까지 대기하며, 비 동기식 IO는 파일작업을 요청하고 그 다음 작업을 바로 수행한다. 이후 파일 작업이 끝나면 그 상태는 이벤트로 받아서 처리한다. 동기식 IO와 비동기식 IO를 구별하기 위해 동기식 IO 메소드는 Sync라는 단어를 붙인다.(동기식 IO가 더 느리다. 대기하므로)파일을 읽어 들이거나 파일에 쓰기동기적// 파일을 동기식 IO로 읽어 들인다. var fs = require('fs'); // 파일 시스템에 접근 하기 위해 fs 모듈 사용var data = fs.r..
이벤트 이해 하기1. Node.js => 비동기 방식으로 처리 2. Node 에서 이벤트 처리 하는 EventEmitter 라는것이 만들어 져있음. 3. 다른쪽에서 이벤트를 받고 싶다면 이벤트 리스너 등록 이벤트 보내고 받기노드의 객체는 EventEmitter를 상속 받을 수 있으며, 상속 반은 후에는 EventEmitter 객체의 on() 과 emit() 메소드 사용 가능 on() 메소드 = 이벤트가 전달될 객체에 이벤트 리스너를 설정하는 역할. 보통은 노드 내부에서 미리 만들어 제공하는 이벤트를 받아 처리하지만,필요할 때는 직접 이벤트를 만들어 전달 할 수도 있다. once() 메소드 = 이벤트 리스너 함수가 한번이라도 실행하고 나면 자동으로 제거 되므로 이벤트를 딱 한번만 받아서 처리 할 수 있음...
주소 문자열과 요청 파라미터 다루기웹사이트에 접속하기 위한 사이트 주소 정보는 노드에서 URL 객체로 만들 수 있음. Example) actor로 검색버튼을 눌렀을 시 https://www.google.co.kr/?gws_rd=ssl#newwindows=1&q=actor 이때 가장 중요한 것은 어디 까지가 사이트 주소인지와 어떤 내용이 요청 파라미터 인지 구별해야함. 노드에서 미리 만들어 둔 모듈 : url 모듈 사용!url 모듈을 사용하면 일반 주소 문자열을 URL 객체로 만들거나 또는 URL 객체에서 일반 문자열로 변환하는일이 쉬워진다. Example) url 모듈을 이용한 주소 문자열과 URL 객체 간의 변환 https://www.google.co.kr/?gws_rd=ssl#newwindows=1&..
프로토타입자바스크립트에서도 객체의 원형을 정의 한 후 그원형에서 새로운 인스턴스 객체를 만들어 낼 수 있음.Ex) 프로토 타입 예제function Person(name,age){ this.name = name; this.age = age;} Person.prototype.walk = function(speed){ console.log(speed + " km 속도로 걸어 갑니다.");} var person01 = new Person('kim ',20);var person02 = new Person('park',24); console.log(person01.name + "객체의 walk(10)을 호출 합니다.");person01.walk(10);=>1. Person 프로토 타입의 객체를 만드려면 먼저 Per..
자바스크립트에 클래스는 없지만 함수(function)와 new를 통해 클래스를 비스무리하게 흉내낼 수 있습니다.function Person() { this.eyes = 2; this.nose = 1; }var kim = new Person(); var park = new Person();console.log(kim.eyes); // => 2 console.log(kim.nose); // => 1console.log(park.eyes); // => 2 console.log(park.nose); // => 1kim과 park은 eyes와 nose를 공통적으로 가지고 있는데, 메모리에는 eyes와 nose가 두 개씩 총 4개 할당됩니다. 객체를100개 만들면 200개의 변수가 메모리에 할당되겠죠? 바로 이런 ..
콜백함수(CallBack function)파라미터로 전달되는 함수 function add(a,b,callback){var result = a + b;callback(result);} 함수를 호출했을 때 또 다른 함수를 파라미터로 전달하는 방법함수를 파라미터로 전달하는 경우 대부분은 비동기 프로그래밍, 연산이 끝났을 때 파라미터로 전달한 함수가 실행 될 수 있다면 그 시점에 겨로가를 처리할 수 있으므로, 효율함수 안에서 값을 반환 할 때 새로운 함수를 만들어 반환하는 방법Ex) function add(a,b,callback){ var result = a + b;var cnt = 0; callback(result); var history = function(){cnt ++; return a + '+' + b..
자바 스크립트의 객체와 함수 이해하기1. 자바 스크립트는 자료형을 명시하지 않는다. 2. 숫자를 넣어 둘떄는 문자열 보다 작은 크기의 변수 상자를 만들게 된다. 3. var 키워드자료형undefined : 값을 할당하지 않은 변수 값null : 존재하지 않는 값을 가리키는 값Object: 객체를 값으로 가진다.Number : 정수나 부동 소수 값을 가지는 자료형 객체.()으로 객체 접근[]대괄호로 속성의 이름이용 접근 예) person['age'] = 20;console.log("나이 %d",person.age); 익명함수function keyword뒤에 곧바로 소괄호 형태function add(a,b){}표현식 처럼 사용될 경우 ;속성 추가 예제ex) var person ={}; person['age'..
- Total
- Today
- Yesterday
- 감자코딩
- 알고리즘
- 텐서플로우
- 리버싱
- 학교
- db
- Controller
- 백준알고리즘
- node.js
- 감자개발자
- 개발하는 관광이
- MVC
- Algorigm
- TensorFlow
- C언어
- programming
- 초보자를 위한 C언어 300제
- 안드로이드
- BFS
- C langauge
- 스프링
- 복습
- Android
- 머신러닝
- node
- Spring
- 노드
- 코드엔진
- 프로그래밍
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |