Express 프레임워크 설치와 사용
npm i express
const express = require('express') const app = express() const port = 3000 app.get('/', function (req, res) { // http method, 라우팅, 콜백함수 순서로 구성 res.send('Hello World') // 응답에 hello world를 담아 보내겠다 }) app.listen(port) // 듣고 있는 포트 번호
실행은 index.js에 만든 파일일 때
node index.js
예제 API 만들어보기
특정 라우터로 들어갔을 때 html, json을 반환해보자.
const express = require('express') const app = express() const port = 3000 // html 전송 app.get('/cat', function (req, res) { res.send('<h1>Hello World</h1>') }) // json 전송 app.get('/dog', function (req, res) { res.json({ 'sound': '멍멍' }) // send랑 보이는 모습은 같지만 json으로 전달하면 명시적이고 효율적으로 전달 가능 }) app.listen(port)
request에 정보가 담긴 경우 params, query를 이용해 알 수 있음 (변수로 받는 방식).
const express = require('express') const app = express() const port = 3000 // params app.get('/user/:id', function (req, res) { const { id } = req.params res.json({ 'userId': id }) }) //query app.get('/user/:id', function (req, res) { const { query } = req console.log(query) // localhost/user/hello?age=12&name=world 일 때 { age: '12', name: 'world' } }) app.listen(port)
post의 경우 req의 body에 값이 담김.
동물 소리 API 만들기 실습
/sound/:name에 들어갔을 때 알맞는 동물 소리 보여주기
const express = require('express') const app = express() const port = 3000 app.get('/user/:name', function (req, res) { const { name } = req.params if(name === 'dog') { res.json({ '멍멍' }) } else if(name === 'cat') { rres.json({ '야옹' }) } else { res.json({ '알 수 없음' }) } }) app.listen(port)
만약 프론트 쪽에서 name의 입력을 받는 input을 만든다 하면 다음과 같은 형태가 될 수 있음.

근데 html에서 요청했을 때 cors 문제가 날 수 있음.
CORS 이슈와 프론트엔드 연결 실습
npm i cors
전부 허용.
var express= require('express') var cors= require('cors') var app= express() app.use(cors()) // 괄호 안을 비워놓으면 모든 요청에 대해 허용하는 것임. app.get('/products/:id', function (req, res, next) { res.json({msg: 'This is CORS-enabled for all origins!'}) }) app.listen(80, function () { console.log('CORS-enabled web server listening on port 80') })
이 외에도 npm 문서를 보면 single route만 허용 등 다양한 옵션을 추가할 수 있음.
참고 영상