我的Routes文件夹中有许多路由. 当我想在我的主服务器文件中使用它们时,它会占用太多行. 我可以将这些文件移到另一个文件中吗?如果是,是如何做到的?

例:

    
app.use("/user", userRouter);
app.use("/user", loginRouter);
app.use("/role", roleRouter);
app.use("/rolePermission", rolePermissionRouter);
app.use("/module", moduleRouter);
app.use("/menu", menuRouter);
app.use("/menuItem", menuItemRouter);
app.use("/news", newsRouter);
app.use("/newsItem", newsItemsRouter);
app.use("/news/category", newsCategoryRouter);
app.use("/news/comments", newsCommentRouter);
app.use("/news/comments/user", newsCommentUserRouter);
app.use("/setting", settingRouter);
app.use("/news/rating/user", newsRatingUserRouter);
app.use("/news/tag/user", newsTagUserRouter);
app.use("/linkbox", linkboxRouter);
app.use("/linkboxItem", linkboxItemRouter);
app.use("/linkbox/category", linkboxCategoryRouter);
app.use("/faq", FAQRouter);
app.use("/faq/category", FAQCategoryRouter);
app.use("/faqItem", FAQItemRouter);
app.use("/contact", contactRouter);
app.use("/contactItem", contactItemRouter);
app.use("/imageGallery", imageGalleryRouter);
app.use("/imageGallery/category", imageGalleryCategoryRouter);
app.use("/imageGallery/comment", imageGalleryCommentRouter);
app.use("/imageGallery/comment/user", imageGalleryCommentUserRouter);
app.use("/imageGalleryItem", imageGalleryItemRouter);
app.use("/imageGallery/tag/user", imageGalleryTagUserRouter);
app.use("/imageGallery/rating/user", imageGalleryRatingUserRouter);

推荐答案

有多种方法可以实现这一点,但我建议在两者之间创建一台新路由,并在那里注册所有路由.就像你已经对userRouter号车做的那样.

您可以创建一个包含以下内容的新文件router.js:

import { Router } from 'express';

const router = Router();
router.use("/user", userRouter);
router.use("/user", loginRouter);
router.use("/role", roleRouter);
router.use("/rolePermission", rolePermissionRouter);
router.use("/module", moduleRouter);
router.use("/menu", menuRouter);
router.use("/menuItem", menuItemRouter);
router.use("/news", newsRouter);
router.use("/newsItem", newsItemsRouter);
router.use("/news/category", newsCategoryRouter);
router.use("/news/comments", newsCommentRouter);
router.use("/news/comments/user", newsCommentUserRouter);
router.use("/setting", settingRouter);
router.use("/news/rating/user", newsRatingUserRouter);
router.use("/news/tag/user", newsTagUserRouter);
router.use("/linkbox", linkboxRouter);
router.use("/linkboxItem", linkboxItemRouter);
router.use("/linkbox/category", linkboxCategoryRouter);
router.use("/faq", FAQRouter);
router.use("/faq/category", FAQCategoryRouter);
router.use("/faqItem", FAQItemRouter);
router.use("/contact", contactRouter);
router.use("/contactItem", contactItemRouter);
router.use("/imageGallery", imageGalleryRouter);
router.use("/imageGallery/category", imageGalleryCategoryRouter);
router.use("/imageGallery/comment", imageGalleryCommentRouter);
router.use("/imageGallery/comment/user", imageGalleryCommentUserRouter);
router.use("/imageGalleryItem", imageGalleryItemRouter);
router.use("/imageGallery/tag/user", imageGalleryTagUserRouter);
router.use("/imageGallery/rating/user", imageGalleryRatingUserRouter);
export default router;

然后将此路由导入到您用来配置Express app对象的先前文件(如server.jsmain.js)中,并用新路由替换所有以前的30路由注册,如下所示:

import GlobalRouter from './router.js';

[...]

app.use(GlobalRouter);

[...]

Node.js相关问答推荐

在child_Process中持久运行SSH命令

可以删除一个mongodb catch块

如何更改ejs中的镜像src,以防从OMDB API获取的某些镜像具有src=N/A

MongoDB-$Lookup未获得适当的结果

当变量在另一个文件中初始化时,在初始化错误之前无法访问变量

TS[2339]:类型 '() => Promise<(Document & Omit) | 上不存在属性空>'

如何修复我的 NodeJS SSE 写入函数以在后续调用中更新 HTML?

Amplify 部署的应用程序出现TypeError: handler is not a function错误,但它在本地运行

如何使用 $PATH 变量在系统中全局自动安装 bash 脚本?或者重写脚本到node

Nodejs mongoose 在一个查询中从多个集合中获取结果

如何调用同名的两个函数?

JAVASCRIPT:foreach 循环后的空数组

使用 .pipe(res) 向客户端发送音频不允许您搜索?

我怎样才能让`git`失败而不是要求提供凭据

GridFS 大文件下载使 Node.js 服务器崩溃. MongoServerError:排序超出了字节的内存限制

在 Passport 策略回调中获取请求对象

node_modules 中 .bin 文件夹的用途是什么?

node.js 在控制台上显示未定义

Node.js - 使用异步库 - 带有对象的 async.foreach

如何设置 useMongoClient (Mongoose 4.11.0)?