-
Object 설계 방법
// javascript Object 설계 var request = { // 값 one : "hello", two : 1, three : 5, // 기능 sum : function(){ return two+three; } };
-
URL 분석
- 형식 (Object 형식으로 생성)
Url { protocol: null, slashes: null, auth: null, host: null, port: null, hostname: null, hash: null, search: '?id=root&pw=qwer1234', query: 'id=root&pw=qwer1234', pathname: '/screenshot/path', path: '/screenshot/path?id=root&pw=qwer1234', href: '/screenshot/path?id=root&pw=qwer1234' }
- 사용
// url 모듈 var u = require('url'); // querystring 모듛 var qs = require('querystring'); var url = u.parse(request.url); // path 정보 // /screenshot/path url.pathname; // query 정보 // id=root&pw=qwer1234 url.query; var queryString = qs.parse(url.query); queryString.id; // root queryString.pw; // qwer1234
-
File 읽기
- 모듈 설정
// fileStream 모듈 // 파일을 읽을 수 있다. var fs = require("fs");
- 사용 방법
// path 에 해당하는 파일을 읽는다. // Node,js 의 특징으로 파일을 읽거나 쓰는 Stream 처리를 Sub Thread 에서 실행된다. // 파일 경로, 인코딩, 콜백 함수 fs.readFile(파일경로, 'UTF-8', function(error, data){ var text = ""; if(error){ text = "서버 오류 : " + error; }else{ // data에 읽은 파일의 정보들이 들어온다. text = data; } res.end(text); });
-
Method 구별 방법
// GET, POST, DELETE, PUT 등이 온다. var method = request.method; // 대문자로 작성해야 한다. if(method == 'GET'){ }else if(method == 'POST')
-
File Type, 동영상 File 처리
- 모듈 설정
// npm install -g mime // 으로 모듈을 설치해야 한다. var mime = require('mime');
- 사용 방법
// url ? 뒤에 붙은 데이터를 object로 변환 : queryString.parse(url.query) // query 객체의 filepath 값 : var filePath = query.filepath; var mtype = mime.getType(filePath); // 파일의 mime Type 을 알려준다. // 동영상이라면 if(mtype == "video/mp4"){ var count = 0; // 1. Stream 생성 var stream = fs.createReadStream(filePath); // 2. Stream 전송 이벤트 등록 // on ( Listener 와 동일 ) // 데이터를 읽을 수 있는 최소 단위 를 CallBack 함수의 매개변수를 통해 전송된다. stream.on('data', function(fragment){ console.log("count : " + count++); res.write(fragment); }); // 3. Stream 완료 이벤트 등록 stream.on('end', function(){ console.log("Complete!!!!"); res.end(); }); // 4. Stream 에러 이벤트 등록 stream.on('error', function(error){ res.end("error : " + error); }); }