
라우터란 클라이언트 쪽에서 get 혹은 post로 보낸 요청 url을 특정 함수로 연결해주는 것이다. 이전에 http로 서버를 구현한 경우 req에 url의 정보가 담겨있고 if문으로 각각의 url을 처리하는 로직을 짜면 서버코드가 지나치게 커질 수 있다. express에서는 아래의 코드가 라우터의 기능을 한다. 아직은 router가 1개이기 때문에 >curl -X GET "localhost:3000/user" 의 요청을 보내게 되면 404에러를 반환한다. index.js를 수정하고 다시 요청을 보내보자. 이제는 USER!!이라는 응답을 받게 된다. 그리고 http://127.0.0.1:3000/user 로 이동을 하면 이런 페이지가 뜰 것이다. 이제 req, res를 살펴보면 클라이언트 요청정보를 re..

이번엔 미들웨어에 대해 알아보자 서버에 필요한 기능들을 익스프레스 인스턴스(어플리케이션)에 추가하는 것이다. helmet, cooieParser, bodyPerser, morgan 등이 있고 그 외에도 Custom Middleware를 작성할 수도 있다. middleware를 추가할 때는 app.use()를 사용한다. index.js를 위와 같이 바꿔주고 실행시킨 후 cmd창에서 curl -X GET "localhost:3000" 를 실행시켜주면 index.js를 실행시킨 쪽에서 아래와 같이 나오게 된다. Custom logging Middleware가 찍혀나오게 된다. middleware에는 req, res, next를 인자로 가지며 next를 실행시켜야 다음 함수로 넘어가게 되는 것이다. 다른 함수를..
전 포스팅에서 서버에서 일일히 url을 설정하지 않기 위해 express.js에 대해 알아보겠다. http://expressjs.com/ Express - Node.js web application framework Fast, unopinionated, minimalist web framework for Node.js $ npm install express --save expressjs.com express는 Node.js를 위한 웹 프레임 워크이다. express에는 어플리케이션 미들웨어 라우터 request response 등의 개념이 있다. 어플리케이션은 익스프레스 인스턴스를 의미한다. 우선은 express를 설치하자 npm install express --save index.js 파일을 (http..

우선은 terminal을 하나 더 열고 curl -X GET "localhost:3000" 를 실행해보면 Hello World가 찍힐 것이다. 서버가 listen의 대기상태이고 요청이 들어올 때 마다 해당 서버 코드의 콜백함수가 동작하는 것이다. const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader("Content-Type", "text/plain"); res.end("Hello World"); }); 이때 아래를 실행해도 Hello World가 찍힐 것이다. 그렇다면 /intro는 어디에 있는 것일까? curl -X GET "localhost:3000/intro" 정답은 저 곳의 req에 있다. req.u..

https://nodejs.org/en/docs/guides/getting-started-guide/ Getting Started Guide | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 를 살펴보자. index.js파일을 만들고 코드를 작성해보자. 다음 node index.js를 terminal에서 실행해주면 127.0.0.1, port는 3000에서 Hello World를 찍어준다. 코드를 간단히 살펴보면 http 모듈을 불러오고. hostname 과 port를 지정해주었다. 다음은 http모듈의 createServer method를 활용하여 Server를 만들었다. 마지막으로 s..
브라우저 밖에서 자바스크립트 코드를 실행한다. V8 엔진을 사용한다 이벤트 기반의 비동기 I/O 프레임워크이다. Client , Event Loop , Non-blocking Worker 로 크게 이루어져 있고 Event Loop은 single thread로 이루어져 있다. Client가 HTTP requests를 Node.JS 서버로 보내게 되면 Event Loop에서 일을 처리하고 Client로 결과를 return 하게 된다. Event Loop에서는 Event Queue에 있는 일을 하나씩 실행하게 된다. 이 때 Event Loop에서 일을 처리할 때 Event Loop에서 바로 처리할 수 없을 때는 다른 스레드, Non-blocking Worker로 일을 넘겨주어 실행시킨다. 결과가 완료된 후에는..
https://nodejs.org/ko/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 에서 Node.js를 설치해주면 node.js와 npm이 같이 설치됩니다. 저는 VS Code를 쓸거니까 https://code.visualstudio.com/download Download Visual Studio Code - Mac, Linux, Windows Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experien..