express

elinapark·2022년 1월 13일
0

express

간결하고 유연한 Node.js 웹 애플리케이션 프레임워크

  • 설치

npm install express --save

  • 불러오기
const express = require("express");
  • express 서버 만들기
const app = express();

Hello World 예제

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 at http://localhost:${port}`);
});
  • 터미널에서 node 실행하기

    node app.js


express json 설정(초기값 strict: true)

app.use(express.json({ strict: false }));

cors 미들웨어 사용하기

  • 설치

npm install cors --save

  • 불러오기
const cors = require("cors")
  • 적용하기
app.use(express.static("client"));
// ? 모든 요청에 대한 CORS 허용
app.use(cors());

express Routing

app.METHOD(PATH, HANDLER);

  • app은 인스턴스
  • METHOD 는 HTTP request Method
  • HANDLER 는 라우터가 일치할 때 실행되는 함수
// - get
app.get("/", (req, res) => {
  res.send("GET 을 요청합니다!");
});

// - post
app.post("/", (req, res) => {
  res.send("POST 를 요청합니다!");
});

// - put
app.put("/", (req, res) => {
  res.send("PUT 을 요청합니다! ");
});

// - delete
app.delete("/", (req, res) => {
  res.send("DELETE 를 요청합니다!");
});


express middleware 로그 출력

미들웨어는 반드시 마지막에 next() 해주기

const myLogger = (req, res, next) => {
  console.log("무조건 로그를 찍는다");
  next();
};

app.use(myLogger);

express middleware 요청시간 출력

const reqTime = (req, res, next) => {
  req.reqTime = Date.now();
  next();
};

app.use(reqTime);

app.get("/", (req, res) => {
  const resText = `요청시간: ${req.reqTime}`;
  res.send(resText);
});

express middleware 요청할 때마다 로그 출력

app.use("/", (req, res, next) => {
  console.log("요청이 들어올때마다 실행되는 로그");
  next;
});

예제

const express = require("express");
const cors = require("cors");
const app = express();
const port = 3000;

const jsonParser = express.json({
  strict: false,
});

app.use(jsonParser);
app.use(cors());

app.get("/", (req, res) => {
  res.send("Hello World");
});

app.post("/lower", jsonParser, (req, res) => {
  console.log(req.params);
  console.log(req.body);
  res.json(req.body.toLowerCase());
});

app.post("/upper", jsonParser, (req, res) => {
  console.log(req.body);
  res.json(req.body.toUpperCase());
});

- 에러핸들링
app.use((req, res, next) => {
  console.error(stack);
  res.status(404).send("클라이언트 에러 발생! 404");
});

app.use((err, req, res, next) => {
  console.error(err, stack);
  res.status(500).send("서버에러 발생! http code: 500");
});

app.listen(port, () => {
  console.log(`시작하면 출력되는 로그 http://localhost:${port}`);
});
profile
틀린 내용이나, 개선해야 할 사항을 발견하신다면 댓글로 편하게 남겨주세요. 감사합니다.🙇

0개의 댓글