- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道这是一个非常初学者的问题,但在涉及 MERN 堆栈和 GraphQL 时,我很难掌握一些事情。有这个particular project on github Web 应用程序是使用 MongoDB、Express、React 和 Nodejs 以及 GraphQL 开发的。
我知道 MongoDB 用于数据存储,React 用于前端,但我无法理解为什么使用 Express 和 Nodejs 如果使用 GraphQL 创建的 API 直接将 POST 和 GET 数据发送到/来自 MongoDB 数据库? nodejs、express、graphql的作用和联系是什么?
这个问题对你来说可能没有意义,因为我缺少网络应用程序开发的基本概念知识和对网络开发堆栈(如 MERN)的理解。
最佳答案
Node.js 是一个 JavaScript 运行时环境——它实际执行所有服务器端代码。 Express 是一个框架,它提供用于在 Node.js 中开发 Web 应用程序的基本功能。虽然 Node.js 已经能够监听端口上的请求,但 Express 通过消除样板文件并提供更简单的 API 来创建端点,使设置 Web 服务器变得更简单。
GraphQL 是一种查询语言。 GraphQL.js 是 GraphQL 的 JavaScript 实现。两者都不能创建端点或 Web 服务器。 GraphQL 本身不会监听对特定端口发出的请求。这就是我们使用 Express 的目的——结合另一个库,如 apollo-server-express
或 express-graphql
,Express 设置我们的端点,监听传入的请求端点,解析它们并将它们交给 GraphQL 来执行。然后它将执行结果发送回发出请求的客户端。
同样,GraphQL.js 不能直接与数据库交互。 GraphQL 只是执行您为响应请求而提供的代码。与数据库的实际交互通常是通过驱动程序(如 mongodb )或 ORM(如 mongoose )完成的。
因此,客户端(如您的 React 应用程序)向您的 Express 应用程序发出请求,Express 应用程序解析请求并将其交给 GraphQL,GraphQL 执行您的查询,并在此过程中调用一些代码,然后从您的数据库中获取数据。此数据被格式化为正确的响应并发送回客户端。
关于node.js - 当还使用 GraphQL 时,Nodejs 和 Express 在 MERN 堆栈 Web 应用程序中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59168807/
我是 Node 和 react 新手,我正在尝试在我的 MERN 应用程序中进行子域路由。我发现我无法在 react 中路由我的子域,所以这让我只剩下 Node 。在node中,有很多方法,比如vho
我正在使用技术堆栈 MERN 创建一个应用程序和 Redux .我想知道如何使用 moongose 检索最后添加到数据库的记录.例如,假设它将是分配给特定用户的订单列表。 我已经在后端完成了一个检索所
我正在构建一个基于 MERN Stack 的费用控制应用程序,我想知道哪种方式是处理数据的最佳方式。 更具体地说,我的费用数据具有以下模型 { "_id" : ObjectId("5ece
我正在尝试根据查询从 Mongo db 获取一些记录。我完成了后端,它与 Postman 配合得很好,但我不知道如何将查询的变量从 React 前端发送到后端。 有一个 Client 模型类,我想检索
我正在尝试更新帖子。后端的 PUT 请求工作正常,在 Postman 上测试时返回 200 并更新帖子,但是当我尝试在前端更新帖子( react )时,我没有收到任何错误,但更新的帖子没有被更新提交和
当我重新加载 Heroku 页面时,出现内部服务器错误,状态代码为 500。 但在我本地的环境中并没有发生这种情况。 除此之外, 当我访问正确重定向并正常显示的路由地址时。 当我重新加载页面时,在 c
我在前端连接了 mongoDB 和 react/redux 的 node/express api。 我如何向用户显示错误(例如数据库连接错误)。 例如,如果后端发生错误,我想在组件中创建带有错误消息的
我正在尝试弄清楚如何有条件地渲染部分 react 。我的条件是,当列表项处于事件状态时,应呈现部分内容。 我正在使用 bootstrap,它有一个可用的事件元素。 我的目标是实现类似于对讲机条款页面的
我的应用程序概览:用户可以提交包含图片和文字的帖子。 我正在使用 MERN 堆栈。 目前,图像正在保存到我的 localhost:3001 中服务器在 /public/uploads/然后将路线保存到
我在 React 中得到了带有表单的简单 MERN 堆栈应用程序,它将字段传递给 redux 状态。 Redux 与后端的 node/express 连接,将数据保存在 MongoDB 中。 表单需要
我需要使用像这样的 mongodb 记录: { "_id": { "$oid": "5c09ae281646e8d8bad07d73" }, "name": "
我正计划将 MERN 堆栈应用程序部署到 heroku(在 youtube 上跟随 Traversy Media),我想知道在客户端隐藏 api key (谷歌地图)的最佳做法是什么? 我知道如何在
我是 Web 开发新手,我有一个托管服务,我想在其上部署我的 ReactJS/Node 项目。之前为了部署它,我只是上传了通过运行 npm run build 创建的构建文件夹。此后,我使用 MERN
我使用 create-react-app 制作了一个非常简单的 MERN 应用程序,没有 mongo 数据库。当我部署到 heroku 时,我看到的只是一个空白页面。我已经尝试了很多没有运气的事情。
我尝试在 MEAN.js 中包含一个中间件 (passport-http-bearer),但它使用与 Express 4 不同的路由语法。 Express API 语法是: app.get('/',
我正在部署 MERN 应用程序,并正在寻找有关构建 API 与 React 路由相对路径的最佳方法的指导。以下是我的两条路线的子集。我的相对路线复制了文件夹结构,我不确定如何解决这个问题。 用户路由
我第一次使用 MERN 堆栈构建应用程序。 为了记录 HTTP 请求,我使用“morgan”。 我设法将数据发送到 mongodb,它似乎工作正常。问题是我的帖子请求没有通过。它显示“待处理”4 分钟
我正在考虑将 MERN 框架用于一个新项目,但到目前为止,我所看到的并没有让我感到鼓舞。我已按照通过 mern-cli 设置项目的说明进行操作,该项目确实已创建并正确运行,但当我执行时... npm
我使用 Node、Express、React 和 MongoDB 创建了一个简单的计费 Web 应用程序 但是我想将它转换为本地机器的桌面应用程序。 我知道可以使用 Electron ,但我不知道该怎
我正在尝试将我的 MongoDB 连接到我的 MERN Web 应用程序,并且想知道有关此类信息的最佳资源。基本上,我有一个 MERN Web 应用程序、 Electron 桌面应用程序和 react
我是一名优秀的程序员,十分优秀!