본문 바로가기

Dev.BackEnd/Node.js

[다섯번째] Node.js 기본 / Express 도입



express 
express 는 Node.js 에서 사용 가능한 프레임워크로 npm의 일종이다.

일단 express Framework 를 쓰지 않은 코드를 보자.
const http = require('http');

const hostname = '127.0.0.1';
const port = 1337;

var server = http.createSever(function(req,res){
res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello World\n');
});

server.listen(port, hostname,  function(){
     console.log('Server running at http://${hostname}:${port}/');
});
코드해석>
const http = require('http')
http 라는 모듈을 require 해서 http 객체에 담아 핸들링한다.

var server = http.createSever();
http 모듈에 createServer라는 메서드가 존재한다.
서버를 생성하고 만들어진 서버를 제어하기 위해 객체를 리턴한다.
그러면 우린 server라는 객체를 통해 생성된 서버를 제어할 수 있다.

server.listen(port, hostname,   );
생성된 서버가 port를 바라보게 한다.(listen)
그리고 타고오는 IP(hostname)를 선별한다.
listen은 시간이 걸릴 수 있는 작업이라서 리슨 메소드는 콜백으로 비동기적으로 작용하게 한다.
즉, Listen이 완료됬을 때 Callback이 실행되도록 해둔다.

server.listen(port, hostname,  function(){
     console.log('Server running at http://${hostname}:${port}/');
});
서버가 Listening이 완료됬을 때 console.log에 해당하는 문구를 command창에 출력한다.

var server = http.createSever(function(req,res){
res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello World\n');
});
어떤 내용을 출력할 것인가를 결정해야 한다.
createSever 함수에 익명함수를 사용하여 인자로 전달하여 설정한다.
그리고 req(요청),res(응답)에 해당하는 부분으로 함수내용을 채운다.



Express의 도입
이것보다 더 간단히 할 수 있는 프레임 워크를 이용해보자.
매뉴얼을 보는 방법을 알아야 한다.

app.js 파일 생성
= main application , entry application, main file, entry file 이라고 한다.
최초로 실행되는 진입점이 될 수 있는 애플리케이션을 말한다.
관습적으로 파일명을 app.js로 많이 사용한다.
var express = require('express');
var app = express()

app.get('/',function(req,res){
    res.send('Hello homepage');
});

app.get('/login',function(req,res){
    res.send('Login please');
});

app.listen(3000,function(){
    console.log('Connected 3000 port!');
});
express 를 가져온다.(require)
var express = require('express')
(! 물론 가져오기 전에 express npm을 설치해야 한다!)
모듈을 통해서 객체를 만들어 줘야 한다.
모듈은 함수라서 애플리케이션이라는 것을 리턴한다. 그 리턴한 값을 제어하기 위해서 객체로 지정해준다.

app.listen
app에는 listen이라는 메소드가 있다.
포트 명과 리스닝이 성공했을 때 실행될 콜백 함수를 적는다.
command 에서 실행시키고
localhots:3000 이라고 하면 Cannot GET/ 이 뜬다.
아직 뭔가 부족하기 때문이다.

app.get
get이라는 메소드를 이용한다.
사용자가 홈페이지에 접속할 때는 get방식(URL로 접속하는 방식), post 방식 두 가지 방식이 있다.

app.get('/') : 그냥 홈으로 접속했을 때를 의미

app.get('/', function(){
};
홈으로 접속했을 때 함수가 실행되도록.

app.get('/', function(req,res){
};
res.send 라는 함수
사용자가 어떠한 경로로 들어왔을 때
어떤 것이 실행될 것인가 를 결정하는 것이 get 이라는 메소드
라우터라고 부르고 하는 일을 라우팅이라고 한다.
길을 찾는다 라는 뜻.

라우터란
사용자 / Router / Controller
요청과 처리를 중개하는 역할을 한다.
라우터는 정말 중요하다.

(이 모든 것은 사용설명서에 있다.)

전에도 말했듯이 Docs 읽는 법을 알아야한다.


Express 를 도입했을 때가 더 간결하게 보인다.

이 정도 짧은 코드도 간결해진다면

더 복잡한 코드는 훨씬 간결해질 것이다.




생활코딩 감사합니다^^

-..-