[Sprint #6-2] Node & Server: Express

홍영란·2020년 1월 18일
0

Express JS Framework

Sprint

Refactor Express

  • Express
    Node.js 환경에서 동작하는 Express 웹 애플리케이션 프레임워크

Reference

https://developer.mozilla.org/ko/docs/Learn/Server-side/Express_Nodejs
https://developer.mozilla.org/ko/docs/Learn/Server-side/First_steps
https://poiemaweb.com/express-basics

Express의 역할: 무엇을 "추상화" 해주는지 고민해보기

Express 설치

http://expressjs.com/en/starter/installing.html

// Install Express in the myapp directory 
// Save it in the dependencies list

npm install express --save
yarn add express 
const express = require('express')
const app = express();
const PORT = process.env.NODE_ENV === 'production' ? 3001: 3002

app.listen(PORT,()=>{
   console.log(`server listen on ${PORT}`)
})

Express 특징

1. Middleware

Request object(요청 객체), response object(응답 객체), next 함수에 접근할 수 있는 함수
(* next 함수: 호출되었을 때, stack에 있는 현재 middleware의 다음 middleware를 실행하는 express router의 함수)

Middleware 기능
  • 어떤 코드든 실행한다.
  • request(요청)과 response(응답) 객체에 변화를 만든다.
  • request-response cycle을 끝낸다.
  • stack에 있는 다음 middleware를 호출한다.
// elements of middleware function call
var express = require('express');
var app = express();

app.get('/',function(req, res, next) {
// Calling this function invokes next middleware function in app
  next();
})

app.listen(3000);
var express = require('express')
var app = express()

var myLogger = function (req, res, next) {
  console.log('LOGGED')
  next()
}
// To load the middleware function, call app.user()
// Every time the app receives a request, it prints the message “LOGGED” to the terminal.
app.use(myLogger)

app.get('/', function (req, res) {
  res.send('Hello World!')
})

app.listen(3000)

※ req.on('data',()=>{}) 없이 data 받는 법
https://www.npmjs.com/package/body-parser
※ CORS header 설정 쉽게 하는 법
https://www.npmjs.com/package/cors

2. Router => "분기"

const router = express().Router()

router.get('/classes/messages',(req,res)=>{
    res.send(messages)
})
router.post('/classes/messages',(req,res)=>{
    // your code here
})

✔︎ Keywords

  • how to send response in express
  • how to use middleware in express

※ Hello world example

http://expressjs.com/en/starter/hello-world.html

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

app.get('/', (req, res) => res.send('Hello World!'));

app.listen(port, () => console.log(`Example app listening on port ${port}!`))
/* 서버는 port 3000에서 사용자의 접속 대기 중. 
/ 클라이언트가 GET 방식으로 루트 URL(http://localhost:3000/)에 요청을 보내면 서버는 ‘Hello World!’로 응답할 것 */
profile
JavaScript를 공부하고 있습니다:)

0개의 댓글