在 MEAN Stack 中分组后端路由

2025年3月17日 | 阅读 3 分钟

在我们之前的章节中,更新和获取帖子都运行良好。但仍然缺少身份验证。现在,我们将所有内容都组织在 app.js 文件中。这个文件还不是很大,在本节中,我们将以不同的方式组织我们的路由,因为稍后我们将为身份验证添加更多路由。如果我们将它们分组,那将很好。我们将使用以下步骤来分组它们

1) 因此,正如我们在前端有一个文件夹和文件结构一样,我们希望在后端也拥有一个。除了我们的 "models" 文件夹之外,我们将添加另一个文件夹,并将其命名为 routes。在此文件夹中,我们将组织我们后端的路由。在此文件夹中,我们还将创建一个 javascript 文件,并将其命名为 posts,如下所示

Grouping the Backend Routes in MEAN Stack

2) 在此文件中,我们将使用 javascript 语法导入 express,然后我们将通过创建一个新的常量来设置 express 路由器,如下所示


Grouping the Backend Routes in MEAN Stack

3) 我们将定义我们的路由,就像我们在 js 文件中使用 app 一样,我们可以使用 router.get(),如下所示


Grouping the Backend Routes in MEAN Stack

这与之前的 app 的工作方式相同。在此,我们可以通过获取其 URL 来复制路由。我们将 URL 作为第一个参数传递,将函数作为第二个参数传递。我们还可以获取 app.js 文件中的所有路由。

4) 因此,我们将从 js 文件中剪切所有路由,并将它们添加到 posts.js 文件中,并且我们还将把 app 替换为 router,如下所示


Grouping the Backend Routes in MEAN Stack

5) 现在,我们需要导出此路由器,以使 express 知道它,为此,我们将使用 module.exports 语法,如下所示


Grouping the Backend Routes in MEAN Stack

6) 我们需要将其导入到我们的 app.js 文件中,以便我们可以再次使我们的主 express 应用程序知道这些额外的路由,因为如果我们不导入路由器,那么我们所有的路由都将失败。因此,我们将按以下方式导入路由

导入路由对象后,我们需要让 express 知道它,这将通过以下方式完成


Grouping the Backend Routes in MEAN Stack

7) app.js 文件中没有 postmodel 的用处,因为我们在路由中使用了我们的模型。因此,我们将从 app.js 文件中删除它,并将我们的 postmodel 导入到我们的 posts.js 文件中。


Grouping the Backend Routes in MEAN Stack

8) 我们可以改进 use(postroutes). 稍后,我们将有多个路由文件,并且我们的 posts.js 文件应该只处理到达 /api.posts/nothing 或类似 id 的斜杠的路由。我们从我们的帖子请求中剪切 /api/posts,并假设到达该文件的任何路由或请求都已被过滤。为此,我们将 /api/posts 作为 app.use() 方法的第一个参数添加到 app.js 文件中,如下所示


Grouping the Backend Routes in MEAN Stack

通过添加此行代码,我们过滤了指向 API 帖子的请求,并且只有 URL 或 URL 路径以 /api/posts 开头的请求才会被转发到帖子路由文件和路由设置中。

Grouping the Backend Routes in MEAN Stack

9) 现在,我们还需要为 put 请求、get 请求和 delete 请求删除 /api/posts

Grouping the Backend Routes in MEAN Stack

我们应该仍然有一个像以前一样工作的应用程序,我们将通过添加或删除帖子来测试它。因此,我们将返回到我们的 angular 应用程序并尝试添加和删除帖子。

Grouping the Backend Routes in MEAN Stack

在将路由分组到一个新文件后,一切运行良好。在我们的下一节中,我们将学习如何将加载指示器添加到我们的应用程序中。

下载完整项目(Grouping routes.zip)