在 MEAN Stack 中添加 Post 后端点

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

在我们之前的章节中,我们使用中间件来添加一些标头以解决 CORS 错误。因此,能够发布新服务器将会很棒,为此,我们需要允许请求指向 /posts,但这些请求应该是 post 请求。我们正在使用中间件,这意味着我们服务器上的所有请求或到达我们服务器的请求都将由该中间件处理,但我们可以将其缩小范围。我们将以此方式添加一个 post 后端点

1) 在第一步中,我们将使用 app.post() 而不是使用 app.use() 函数。此函数将本质上附加一个中间件,其工作方式与我们的最后一个中间件类似。但是,此中间件将针对传入的 post 请求被触发。类似地,我们可以对 get 和 put 请求使用 app.get()、app.put() 等。


Adding the Post backend point in MEAN Stack

2) 在此函数中,我们将传递要处理的 post 请求,然后我们得到具有 request、response 和 next 的默认函数,如下所示


Adding the Post backend point in MEAN Stack

3) 在此中间件中,我们将对 post 数据进行一些更改。我们还没有数据库,所以我们无法存储它们。目前,我们无法存储它们,因此我们将无法处理和获取它们,但我们可以检查是否可以将数据发送到该路由。因此,我们将简单地使用 console.log 输出我们收到的帖子,如下所示

现在,我们如何访问随请求发送的帖子?我们的请求一直是一个空请求,我们没有添加任何数据,因为我们只处理 get 请求。Post 请求有一个主体,所以它们附带数据,我们需要提取该数据。

现在,为了提取数据,我们需要安装一个额外的包,它添加一个方便的中间件,我们将把它插入到我们的 express 应用程序中。它将自动提取传入的请求数据并将其作为新字段添加到该请求对象中,以便方便地访问它。我们将使用以下命令来安装该包


Adding the Post backend point in MEAN Stack

这是一个 node express 包,可以用作 express 中间件。Body parser 正如其名称所暗示的那样。它解析传入的请求正文,提取请求数据,因为它将是数据流,并将其转换为数据对象。

4) 现在,我们将返回到 app.js 文件,并在此处以以下方式导入这个新包

0

Adding the Post backend point in MEAN Stack

5) 现在,我们将通过将其添加为 CORS 标头和帖子请求之前的一个额外中间件来使用它。我们没有针对特定路径对其进行过滤;我们将对所有传入请求执行此操作。我们在这里不使用默认函数。我们将简单地传递 body-parser 并调用 json 方法,它将返回一个有效的 express 中间件,用于以以下方式解析 JSON 数据


Adding the Post backend point in MEAN Stack

6) 现在,我们将使用解析后的正文。在 api.post() 方法中,我们将通过以下方式访问请求正文来提取我们的帖子


Adding the Post backend point in MEAN Stack

7) 我们仍然需要返回一个响应,因为它仍然是传入请求的端点。为了确保此请求不会在客户端超时,我们需要返回一个响应。因此,我们将调用 response,然后使用状态函数的 201 设置状态代码。之后,我们将调用 json() 以以下方式发回 json 数据


Adding the Post backend point in MEAN Stack

8) 现在,我们不需要发回数据。我们将以下列方式发回确认消息


Adding the Post backend point in MEAN Stack

现在,我们已经设置好了,要试用它,我们需要将 angular 连接到此 API 端点。因此,在下一节中,我们将学习如何将 angular 连接到 API 端点。