๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
[Express ์น ์๋ฒ ๋ง๋ค๊ธฐ] (3) Router ๊ฐ์ฒด๋ก ๋ผ์ฐํ ๋ถ๋ฆฌํ๊ธฐ ๋ณธ๋ฌธ
๐ฉ๐ป ๋ฐฑ์๋(Back-End)/Node js
[Express ์น ์๋ฒ ๋ง๋ค๊ธฐ] (3) Router ๊ฐ์ฒด๋ก ๋ผ์ฐํ ๋ถ๋ฆฌํ๊ธฐ
์ง์ง์ํ์นด 2023. 4. 27. 00:24728x90
๋ฐ์ํ
<๋ณธ ๋ธ๋ก๊ทธ๋ Node.js ๊ต๊ณผ์๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-)>
๐ Router ๊ฐ์ฒด ์ฌ์ฉํ๊ธฐ
๐ index ์ user ๋ถ๋ฆฌํ๊ธฐ
๐ routes/user.js
const express = require("express");
const router = express.Router();
// GET / ๋ผ์ฐํฐ
router.get("/", (req, res) => {
res.send("Hello, Express");
});
module.exports = router;
๐ routes/user.js
const express = require("express");
const router = express.Router();
// GET / user ๋ผ์ฐํฐ
router.get("/", (req, res) => {
res.send("Hello, User");
});
module.exports = router;
๐ app.js
// express : http ๋ชจ๋ ๋ด์ฅ๋์ด์ ์๋ฒ์ ์ญํ
const express = require("express");
const app = express();
// process.env ๊ด๋ฆฌ
const dotenv = require("dotenv");
// ๋ฏธ๋ค์จ์ด
const cookieParser = require("cookie-parser");
const session = require("express-session");
const morgan = require("morgan");
const multer = require("multer");
const fs = require("fs");
// ํ์ผ ๊ฒฝ๋ก
const path = require("path");
const { fstat } = require("fs");
require("dotenv").config();
// Router
const indexRouter = require("./routes/index");
const userRouter = require("./routes/user");
dotenv.config();
// ์๋ฒ๊ฐ ์คํ๋ ํฌํธ
// app.set("ํค, ๊ฐ") : ๋ฐ์ดํฐ ์ ์ฅ
app.set("port", process.env.PORT || 8000);
// dev : [HTTP ๋ฉ์๋][์ฃผ์][HTTP ์ํ ์ฝ๋][์๋ต ์ฝ๋]-[์๋ต ๋ฐ์ดํธ]
app.use(morgan("dev"));
app.use("/", express.static(path.join(__dirname, "public")));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser(process.env.COOKIE_SECRET));
app.use(session({
// ์์ฒญ์ด ์ฌ ๋ ์ธ์
์ ์์ ์ฌํญ์ด ์๊ธฐ์ง ์๋๋ผ๋ ๋ค์ ์ ์ฅํ ์ง ์ค์
resave: false,
// ์ธ์
์ ์ ์ฅํ ๋ด์ญ์ด ์๋๋ผ๋ ์ฒ์๋ถํฐ ์ธ์
์ ์์ฑํ ์ง ์ค์
saveUninitialized: false,
// ์ฟ ํค๋ฅผ ์๋ช
ํ๋๋ฐ secret ๊ฐ ํ์
secret: process.env.COOKIE_SECRET,
// tptus znzldp eogks tjfwjd
cookie: {
// ํด๋ผ์ด์ธํธ์์ ์ฟ ํค ํ์ธ ๋ชปํจ
httpOnly: true,
// https ๊ฐ ์๋ ํ๊ฒฝ์์๋ ์ฌ์ฉ ๊ฐ๋ฅ
secure: false,
// => ๋ฐฐํฌ์ https ์ ์ฉ true ์ค์ ์ด ์ข์
},
name: "session-cookie",
}));
app.use("/", indexRouter);
app.use("/user", userRouter);
app.use((req, res, next) => {
res.status(404).send("Not found");
});
// ๋ฏธ๋ค์จ์ด : ์์ฒญ๊ณผ ์๋ต์ ์กฐ์
// ์์ฒญ, ์๋ต, ๋ค์ ๋ฏธ๋ค์จ์ด๋ก ๋์ด๊ฐ๊ธฐ
app.get("/upload", (req, res) => {
res.sendFile(path.join(__dirname, "multipart.html"));
});
app.post("/upload",
upload.fields([{ name: "image1" }, { name: "image2" }]),
(req, res) => {
console.log(req.filies, req.body);
res.send("ok");
},);
app.use((req, res, next) => {
console.log("๋ชจ๋ ์์ฒญ์ ๋ค ์คํ๋จ");
next();
});
app.get("/", (req, res, next) => {
console.log("GET / ์์ฒญ์์๋ง ์คํ");
next();
}, (req, res) => {
throw new Error("์๋ฌ๋ ์๋ฌ ์ฒ๋ฆฌ ๋ฏธ๋ค์จ์ด๋ก ๊ฐ๋ค");
});
app.use((err, req, res, next) => {
console.error(err);
res.status(500).send(err.message);
});
// HTTP ์น ์๋ฒ์ ๋์ผ
app.listen(app.get("port"), () => {
console.log(app.get("port"), "๋น ํฌํธ์์ ๋๊ธฐ์ค");
});
728x90
๋ฐ์ํ
'๐ฉโ๐ป ๋ฐฑ์๋(Back-End) > Node js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments