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..
안녕하세요, 감자코딩에 감자개발자 입니다. 서버쪽에 대한 포스팅도 꾸준히 해 나갈 생각이므로, 이번에 살펴볼 내용은 "세션"과 " 쿠키"입니다. 1. 쿠키, 세션 이란? 인터넷을 사용하시다 보면 흔히 접했던 말입니다. 가끔 홈페이지 접속이 되지 않거나, 에러가 나는 경우 " 인터넷 옵션에 들어가서 쿠키를 삭제하고 다시 시도해보시길 바랍니다. " 혹은, 로그인을 하였는데 아이디와 비밀번호를 저장하시겠습니까? 라는 글을 보셨을 겁니다. - 쿠키 세션 왜 써요? 서버와 클라이언트가 통신을 할 때 통신이 연속적으로 이어지지 않고 한 번 통신이 되면 끊어진다. 따라서 서버는 클라이언트가 누구인지 계속 인증을 해주어야 하는데, 여기서 쿠키와 세션을 이용하여 인증을 하게 된다. - 쿠키란? 클라이언트 웹 브라우저에서..
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&..
콜백함수(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'..
1. express를 사용해서 렌더링하려고 할경우html파일로 렌더링을 하기 위해서는?예)app.get('/form',function(req,res){ res.render('form'); // template 파일의 form.jade 파일이나 ejs파일 })Express는 웹서버라서 렌더링 하실 포멧 설정을 해야 한다. (Ejs나 pug) , 아니면 파일확장자만 바꿔도된다.굳이, html 파일을 보내려고 할경우 res.sendFile()을 써준다.2. express를 사용해서 ejs 파일 렌더링 하려는 경우 app.set('view engine','ejs');app.get('/form',function(req,res){ res.render('form.ejs');
모듈 : http,os => node.js 제공 모듈 그외 Date,Array,String Js제공 모듈이다. npm(node 계의 앱스토어) -의존성 관리 낮춰줌package manager uglifyjs 설치 방법$npm install uglify -js -g 명령어(global 독립 소프트웨어로 사용)$uglifyjs --help 명령어 의미를 나타내준다 1.$uglifyjs pretty.js 파일 실행필수적 코드만 만들게 해준다(공백, 필요없는것들 없앤후 코드 생성)2.$uglifyjs pretty.js -m-m 옵션(mungle) 공백 및 지역 변수 같은 이름바꾸어도 될것들은 짧게 바꾸어준다.3.$uglifyjs pretty.js -o uglifyed.js -m 짧아진 코드 지정 해준다.-o u..
인터넷 동작 과정computer1(요청) Internet computer2(응답)1. computer1 클라이언트2. computer2 서버(http://a.com, 52.192.173.51) http://a.com(브라우저요청) -> 서버(http://a.com)서버 종류 Database 서버채팅 서버게임 서버웹 서버=> 브라우저 요청에 따라 서버는 누가 응답을 할지를 결정하는 역할을 한다. 포트http://a.com:80(80 생략가능) -> 80번 포트를 요청하면 80번 문에 있는 웹서버에 접속하여 port 80을 Listen 하게 한다. a.com을 컴퓨터 한테 요청한다는 말이다. https://opentutorial.org:80(s가 생략시) 이런 형태로 쓰인다.
웹 서버 코드 // const 는 상수 이며, 값이 한번 할당되면 바꿀수 없다.const http = require('http');const hostname = '127.0.0.1';const port = 1337;const server = http.createServer((req, res) => { res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n');}); // 서버 생성 코드 // 서버 대기 상태(서버 열기) 만드는 코드server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`);});
- Total
- Today
- Yesterday
- C langauge
- MVC
- 안드로이드
- node
- 복습
- 감자코딩
- programming
- Spring
- db
- 초보자를 위한 C언어 300제
- 스프링
- 리버싱
- Controller
- 코드엔진
- 개발하는 관광이
- 감자개발자
- 텐서플로우
- BFS
- TensorFlow
- Algorigm
- 알고리즘
- 학교
- C언어
- 백준
- Android
- node.js
- 머신러닝
- 백준알고리즘
- 노드
- 프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |