Express.js로 서버 테스트하기

초짜의 개발 공부·2021년 9월 9일
0

node

목록 보기
2/3
post-thumbnail

Express.js란?

Node.js 웹 애플리케이션 프레임워크로 모듈을 불러와서 더 간편하게 서버를 구축하게 해줄 수 있는 툴이다. 지난 시간에 node.js를 사용해봤는데 express를 통해 쉽고 간결하게 만들고자 한다.

처음에 npm을 설치를 하면 package.json과 그 다음 express를 설치하여 생성된 모듈을 확인할 수 있다. 그러면 여기서 가져온 모듈을 사용해서 서버를 구축한다. 우선 파일을 생성했고 express1.js에서 서버를 만들고자 한다.



  • 우선 공식문서의 안내서를 따라 모듈을 가져온다. 그 이후에 사용할 매서드를 작성하면 된다.
//모듈을 불러온다는 뜻

const express = require("express");
const server = express();

server.listen(3000,()=>{
    console.log("running")
});
  • 공식문서에서 나오는 Hello예제를 보면 다음과 같다.

const express = require('express')
const app = express()
const port = 3000

//여기서도 get요청을 하기 위해 기본 경로 '/'와 요청 응답을 인자로 가진다.
//그리고 send를 통해 보낼 수 있다. 
app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
})

1) 라우팅

  • 위에 나온 get이나 post,delete를 요청을 라우팅이라고 한다. 클라이언트 요청에 애플리케이션이 응답하는 방법를 결정하는 것 이라고 한다.

app.METHOD(PATH, HANDLER)

  • app은 express의 인스턴스입니다.
  • METHOD는 HTTP 요청 메소드입니다.
  • PATH는 서버에서의 경로입니다.
  • HANDLER는 라우트가 일치할 때 실행되는 함수입니다.



2) 라우트 메서드


  • 라우트 메서드는 HTTP메서드를 그대로 쓰며 , 클래스의 인스턴스로 연결된다. 다음과 같은 라우트 메서드를 지원한다고 한다.

get, post, put, head, delete, options, trace, copy, lock, mkcol, move, purge, propfind, proppatch, unlock, report, mkactivity, checkout, merge, m-search, notify, subscribe, unsubscribe, patch, search 및 connect.


3) route()


  • 파일.route()를 이용하면 라우트 경로에 대해서 연결로 라우트 핸들러를 작성할 수 있다.

//공식 문서 예시
app.route('/book')
  .get(function(req, res) {
    res.send('Get a random book');
  })
  .post(function(req, res) {
    res.send('Add a book');
  })
  .put(function(req, res) {
    res.send('Update the book');
  });



4) 미들웨어


미들웨어는 쉽게 말해서 중간에 하는 역할이다. 요청 메서드는 수 많은 미들웨어를 거친 후에 실행되는 것이다. 미들웨어를 쓸 때는 꼭 next()를 표시해야 한다. 그래야 다음 미들웨어를 실행할 수 있게 된다.


__dirname은 현재 파일 경로이다.


//미들웨어를 사용하겠다. 
server.use(express.static(__dirname))

//그 다음 미들웨어를 수행하게 만든다. 
server.use((req,res,next)=>{
    next()
})

다시 연습으로 돌아와서 아까 만든 파일에 연습으로 만든 파일에 express모듈을 설치하고 서버를 콘솔로 확인해 본 뒤 브라우저 localhost:3000으로 확인해보았다.

express 모듈 추가하면 package.json에서 확인할 수 있다.





//다음은 내가 연습으로 작성한 코드

const express = require("express");
const server = express();

//미들웨어를 사용하겠다. 
server.use(express.static(__dirname))

//그 다음 미들웨어를 수행하게 만든다. 
server.use((req,res,next)=>{
    next()
})

server.get('/',(req,res)=>{
  res.status(200).sendFile(__dirname + '/idx.html') 
  //요청이 들어오면 현재있는 파일을 바로 보낼 수 있다. 
   //현재 경로 __dirname
})

server.listen(3000,()=>{
    console.log("running")
});


콘솔에 찍은 내용을 터미널에서 확인하고 브라우저로 localhost:3000에 들어가 확인해보았다.


나는 idx.html과 연결시켰기때문에 html에서 작성한 글귀가 브라우저에 나타난다.



server.get('/',(req,res)=>{
  res.status(200).sendFile(__dirname + '/idx.html') 
  
})

0개의 댓글