在 MEAN Stack 中从数据库获取数据2025年3月17日 | 阅读 3 分钟 在前面的章节中,我们学习了如何使用 MongoDB shell 连接到数据库,并看到了从 MongoDB shell 访问它的命令。在本节中,我们将学习如何获取存储在数据库中的数据。我们将再次更改我们的 app.js 文件。 我们将执行以下步骤从数据库获取数据 1) 我们将回到我们的 app.js 文件,并到达 get() 方法,我们在其中将虚拟数据返回给我们的客户端。现在,我们将不会在这里返回虚拟数据。我们将返回真实数据,因此我们将在我们的代码中摆脱它。 ![]() 2) 现在,我们将从 posts 集合中获取数据。之前,我们借助我们的 post 模型创建了一个 post,并且我们在 post() 方法中使用 new 关键字实例化了该模型。我们将再次使用 post 模型来获取数据,但这次我们在没有关键字的情况下使用它。我们将使用 mongoose 提供的静态方法,即 find() 方法。 这个 find() 方法将返回数据库中的所有条目。这个 find() 方法也可以配置为缩小我们得到的结果,但是我们将获取当时的所有结果。这个函数将以下列方式使用 ![]() 3) 有两种方法来获取这些结果并使用它们 a. 我们可以传递一个函数,该函数将在完成后执行。这个函数回调将获得两个参数,即错误和它获取的结果或文档。这将以下列方式编码 ![]() b. 除了使用回调之外,我们还将链接一个 then 块。这个 then 块将保存我们的结果,因此我们将在这个块中获得所有文档。在获得所有文档后,我们将以下列方式将这些文档 console.log ![]() 4) 我们还需要添加一个 catch 块来处理错误,但是我们稍后会这样做。现在,我们将重新加载我们的 Angular 前端。 ![]() 我们在这里收到一个错误,因为在响应中,我们使用了 posts 数组,我们之前已经删除了它。 5) 现在,我们将把 posts 数组替换为响应中的文档,并且我们将把这个响应代码放入 then 块中。这很重要,并且我们必须在这个 then 块中执行它,因为获取该数据是一个异步任务。因此,完整的 app.get() 方法将以下列方式设计 ![]() 6) 我们希望在前端获得一个 ID 字段,但是在后端,它的名称是 _id。我们将通过在服务器上重命名它来修复它。在 get() 方法中,我们不会直接将文档分配给 posts。我们将以下列方式将 document.map() 分配给 posts 注意:我们将在后面的代码中使用 map() 方法。现在,我们重新加载我们的 Angular 前端,我们将在展开面板中看到数据。 ![]() 我们的文档数据也将在我们的控制台中可见。 ![]() 在下一节中,我们将学习如何在 MEAN Stack 中转换响应数据。 下载完整项目(从数据库获取数据.zip) 下一个主题在 MEAN Stack 中转换响应数据 |
我们请求您订阅我们的新闻通讯以获取最新更新。