server 폴더 구조
폴더를 구분해서 작성해주는 과정에서 실수가 생겨 404 에러가 났다. 그래서 좀 더 확실히 정리하기 위해 server의 폴더와 파일 구조를 tree
를 설치해 확인해보면서 정리해보려고 한다.
tree
//tree 설치
sudo apt-get install tree
//구조화할 폴더로 이동해서 3 depth까지(-L)
//node_modules와 test 폴더를 제외하고(-I) 구조화해 표현한다.
tree -L 3 -I "node_modules|test"
client axios 요청
useEffect(() => {
const fetchPosts = async () => {
setLoading(true);
const res = await axios.get(
`http://localhost:8080/mails/posts?page=${currentPage}&limit=${postsPerPage}`
);
setPosts(res.data);
setLoading(false);
console.log(res.data);
};
fetchPosts();
}, []);
server: ./index.js
- "/mails"로 들어온 요청은 postsRouter로 보낸다. (첫번째 폴더 분기)
const express = require("express");
const app = express();
const cors = require("cors");
const postsRouter = require("./router/postsRouter");
app.use(express.json({ strict: false }));
app.use(
cors({
origin: "http://localhost:3001",
credentials: true,
methods: ["GET", "HEAD", "PUT", "PATCH", "POST", "DELETE", "OPTIONS"],
})
);
app.use("/mails", postsRouter);
const PORT = 8080;
let server = app.listen(PORT, () =>
console.log(`🚀 Server is starting on ${PORT}`)
);
module.exports = server;
server: router/postsRouter.js
- /mails로 들어온 요청들 중에서 /posts 요청은 controllers 폴더 내 mail 폴더 내 posts.js의 함수를 동작시킨다.
const express = require("express");
const router = express.Router();
const { posts } = require("../controllers/mails");
router.get("/posts", posts);
module.exports = router;
server: controllers/mails/posts.js
module.exports = async (req, res) => {
const page = req.query.page;
const limit = req.query.limit;
const startIndex = (page - 1) * limit;
const endIndex = page * limit;
const resultPosts = postData.slice(startIndex, endIndex);
res.json(resultPosts);
};
reference
Author And Source
이 문제에 관하여(server 폴더 구조), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kaitlin_k/server-폴더-구조저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)