소수전공 1회차) ES6의 기초와 node js로 간단한 웹서버 열어보기

2017. 12. 14. 21:16프로그래밍(주력)/JAVASCRIPT

es6 연습

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//es6 기초
 
//지역변수, 전역변수 구분이 확실한 자료형
let a = 0;
 
//자바스크립트의 일반 자료형
var b = 0;
 
//객체 자료형
let o = {a : 1, b : 2, c : 3}
 
//배열 자료형 
let arr = [12345]
 
//포문 바깥에서 c를 참조하려고 하면 정의되지 않았다고 오류가 난다.
for (let i = 0; i < 5; i++){
    let c = 5;
    console.log("After for loop", c)
}
 
//파이썬과 비슷하게 객체 안의 요소를 for문에서 in으로 가져올 수 있음.
for (let i in o){
    console.log(o[i])
}
 
//배열도 마찬가지
for (let i in arr){
    console.log(arr[i])
}
 
//자바스크립트 함수 선언
function A() {
    console.log("A")
}
A()
 
//화살표 함수를 변수에 저장시켜 실행
let B = () => {
    console.log("B")
}
B()
 
//중괄호를 제거하고 바로 리턴값을 적는 경우
let C = () => "C"
 
console.log(C())
cs

노드를 사용한 간단한 웹서버(같은 경로에 index.html이 있어야 함)

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//파일 시스템
const fs = require("fs")
 
//http(웹)
const http = require("http")
 
//컴퓨터 자체(하드웨어, 소프트웨어)
const os = require("os")
 
//링크
const url = require("url")
 
/*
console.log(os.type())
console.log(os.uptime())
console.log(os.cpus())
*/
 
//동기식 파일 불러오기
/*
let sync = fs.readFileSync("index.html")
console.log(sync)
*/
 
//비동기식 파일 불러오기. 동기식보다 빠르다.
//비동기는 파일을 읽기도 전에 변수에 선언되므로 변수에 직접 선언 할 수 없다.
/*
fs.readFile("index.html", (err, data) => {
    console.log(err, data)
})
*/
 
//url 파싱하기
//console.log(url.parse("http://naver.com"))
 
 
http.createServer((req, res) => {
    //사용자가 들어온 링크 path
    let pathname = url.parse(req.url).pathname
    //path설정
    console.log("Request for " + pathname + " received.")
 
    //'/'path로 들어오면 '/index.html'로 보내줌
    if(pathname == "/"){
        pathname = "/index.html"
    }
 
    fs.readFile(pathname.substr(1),(err, data) => {
        if(err) {
            //에러를 받으면 404 리턴 
            console.log(err)
            res.writeHead(404, {'Content-Type' : 'text/html'})
        }else {
            //올바른 접속이면 추가 처리
            res.writeHead(200, {'Content-Type' : 'text/html'})
 
            //파일을 읽어 responseBody에 입력
            res.write(data.toString())
        }
        res.end()
    })    
}).listen({
    //localhost인 '127.0.0.1'지정
    host : "127.0.0.1",
    //사용자 포트 지정
    port : 8081,
})
 
console.log("Server is running in 'localhost:8081' !")
cs