サーバフォルダ構造



フォルダの分割中にエラーが発生し、404エラーが発生しました.そこで,より明確に整理するために,treeをインストールしてサーバのフォルダやファイル構造をチェックし,整理する.

tree

//tree 설치
sudo apt-get install tree

//구조화할 폴더로 이동해서 3 depth까지(-L)
//node_modules와 test 폴더를 제외하고(-I) 구조화해 표현한다.
tree -L 3 -I "node_modules|test"

クライアント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

  • "/メール"のリクエストがPostRouterに送信されます.(第1四半期フォルダ)
  • 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リクエストはコントローラフォルダのメールフォルダにあります.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

  • http://manpages.ubuntu.com/manpages/focal/en/man1/tree.1.html