Exports (Node JS, Express, NodeMon)


routerはurlの開始部分にすぎません.
したがって、同じurl /users/editを使用すると、expressはurlを表示します./usersから、ユーザールーターに向かいます.
次にuserrouter内expressで/editを検索します.globalRouterにjoinが作成されます.
import express from "express";

const globalRouter = express.Router();

const handleHome = (req, res) => res.send("Home");

 const handleJoin = (req, res) => res.sden("Join");

globalRouter.get("/", handleHome);

globalRouter.get("/join", handleJoin);

export default globalRouter;
videoRouterも追加されます.
import express from "express";

const videoRouter = express.Router();

const handleWatch = (req, res) => res.send("Watch Video");

 const handleEdit = (req, res) => res.send("Edit Video");

videoRouter.get("/watch", handleWatch);

videoRouter.get("/edit", handleEdit);

export default videoRouter;
さらにuserRouter度増加した.
import express from "express";

const userRouter = express.Router();

const handleEdit = (req, res) => res.send("Edit User");

const handleDelete = (req, res) => res.send("Delete User");

userRouter.get("/edit", handleEdit);

userRouter.get("/delete", handleDelete);

export default userRouter;
今の状態は悪くないが、これからコードが増え、論理が複雑になれば
どの値をインポートしようと、DataBaseに関連する値がインポートされ、インポートされます.
ビデオの更新やhtmlの送信など、多くの増加があります.
したがって、routerとcontrollerを混合して使用するのはよくありません.
コントロールは関数だからです.そしてrouterはその関数を使用します.
だから二人を同じ場所に置くわけにはいかない.
したがって、コントローラフォルダを作成して分離します.globalRouter.js
import express from "express";

 import join from "../controllers/userController";

import trending from "../controllers/videoController";

const globalRouter = express.Router();

globalRouter.get("/", trending);

globalRouter.get("/join", join);

export default globalRouter;
このようにしてglobalRouterを修正する.userController.js
const join = (req, res) => res.send("Join");

export default join;
videoController.js
const trending = (req, res) => res.send("Home Page Videos");

export default trending;
前の段階で試したexport defaultは1つしか適用できません.
だからできる代替案はexportを直接代入することです.
いろいろ当てはまる.userController.js
export const join = (req, res) => res.send("Join");

export const edit = (req, res) => res.send("Edit User");

export const remove = (req, res) => res.send("Remove User");
videoController.js
export const trending = (req, res) => res.send("Home Page Videos");
export const watch = (req, res) => res.send("Watch");
export const edit = (req, res) => res.send("Edit");
globalRouter.js
import { join } from "../controllers/userController";

import { trending } from "../controllers/videoController";
importの部分も中に変更します.
これはdefaultエクスポート時とは異なります.
export constを使用する場合は、実際の名前を使用する必要があります.
ルータに存在しない関数が指定されているため、エラーが発生します.
出口が一つしかないから
明確に指定してください.
(JavaScriptでは変数として使用できない語がいくつかあります.
newのようなものがいくつかあります.)