javascript 라이브러리 검색할 때마다

require를 많이 본다.

라이브러리를 도대체 어디서 구해야 하는 지

npm으로 install해도 어떻게 사용해야 하는지 몰라서 한참 해맸다.

일단 저 require어는 require.js 가 아니다.

그리고 apache나 tomcat같은거로 백날 올려봤자 안된다.

nodeJs서버로 돌려야 사용가능하다.


기존 서버스크립트 개발 관점에서 nodeJs 라이브러리만 껴놓으려고 생각한거 자체가 잘못이다.


nodeJs는 자바스크립트를 해석하는 도구다.

html을 파싱하지 못한다.

javascript파일을 실행한다고 생각하면 된다.

node main.js

CLI에서 이와 같이 실행하는게 끝이다.

java 클래스 실행하는 것하고 똑같다.

그러니 당연히 http서버가 아니다.

java로 서버 만들듯이 라이브러리 임포트해서 해야한다.

하지만 훨씬 쉽다.

const http = require("http")
const fs = require('fs')

const header = {
    "Content-Type": "text/html charset=utf-8"   
}

http.createServer(function (req, res) {
    
    function route(resources) {
        fs.readFile( resources, function(err, data) {           
            res.writeHead(200, header)
            if(err === null) {
                res.write(data)         
            }else {
                console.log("not found")
            }
            res.end()
        })
    }
    
    route(req.url)
    
}).listen(8080)
console.log("welcome nodeJs HTTP SERVER")


http와 fs가 없다고 뜨면

node i http fs

하고 모듈을 설치하면 된다.

html파일로 forward한다는 개념이 아니라

그냥 파일 읽어서 스트링을 브라우저에 던져준다고 생각하면 된다. (실제로는 binary로 간다.)

resources는 실제 파일 경로를 찾아간다. 이부분은 각자 편하게 해결해주면 된다.


위 파일을 main.js로 저장했다면 node main.js로 서버를 돌릴 수 있다.

nodeJs는 가장 많은 javascript 라이브러리를 가지고 있으니 프론트엔드 개발자는 nodeJs를 쓰면 많이 이점이 있다.



'javascript' 카테고리의 다른 글

javascript] bind vs wrapper  (0) 2018.11.17
callback 패턴 함수를 await로 쓰는 방법  (0) 2018.05.01
함수형 프로그래밍 : reduce  (0) 2018.04.07
promise 대신 async, await를 사용하자  (0) 2018.03.22
let의 필요성  (0) 2018.03.20

+ Recent posts