Exports (Node JS, Express, NodeMon)
routerはurlの開始部分にすぎません.
したがって、同じurl
次にuserrouter内expressで
どの値をインポートしようと、DataBaseに関連する値がインポートされ、インポートされます.
ビデオの更新やhtmlの送信など、多くの増加があります.
したがって、routerとcontrollerを混合して使用するのはよくありません.
コントロールは関数だからです.そしてrouterはその関数を使用します.
だから二人を同じ場所に置くわけにはいかない.
したがって、コントローラフォルダを作成して分離します.
だからできる代替案はexportを直接代入することです.
いろいろ当てはまる.
これはdefaultエクスポート時とは異なります.
export constを使用する場合は、実際の名前を使用する必要があります.
ルータに存在しない関数が指定されているため、エラーが発生します.
出口が一つしかないから
明確に指定してください.
(JavaScriptでは変数として使用できない語がいくつかあります.
newのようなものがいくつかあります.)
したがって、同じ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のようなものがいくつかあります.)
Reference
この問題について(Exports (Node JS, Express, NodeMon)), 我々は、より多くの情報をここで見つけました https://velog.io/@0_cyberlover_0/Exports-Node-JS-Express-NodeMonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol