간결하고 유연한 Node.js 웹 애플리케이션 프레임워크
npm install express --save
const express = require("express");
const app = express();
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
app.use(express.json({ strict: false }));
npm install cors --save
const cors = require("cors")
app.use(express.static("client"));
// ? 모든 요청에 대한 CORS 허용
app.use(cors());
app.METHOD(PATH, 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 를 요청합니다!");
});
미들웨어는 반드시 마지막에 next()
해주기
const myLogger = (req, res, next) => {
console.log("무조건 로그를 찍는다");
next();
};
app.use(myLogger);
const reqTime = (req, res, next) => {
req.reqTime = Date.now();
next();
};
app.use(reqTime);
app.get("/", (req, res) => {
const resText = `요청시간: ${req.reqTime}`;
res.send(resText);
});
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}`);
});