一个朋友刚刚问了我一个问题:我可以在不设置Express服务器的情况下创建一个React应用并连接到Mongodb吗?我无法回答这个问题,我习惯于使用前端-后端-数据库流,但我想不出为什么不能跳过后端部分。我不确定我是否可以安装mongoose并直接从React与数据库交互,但对我来说这似乎是合理的,特别是对于简单的应用程序,只是从数据库中获取和插入一些信息。我认为这可能不是一个很好的做法,因为它需要在浏览器上进行额外的计算工作,对吗?如果这个问题很愚蠢,我很抱歉,我是网络开发世界的新手。
bq9c1y661#
数据库必须存在于某个地方。如果只有一个浏览器上的单个客户端需要能够访问他们的数据,这可以通过Local Storage或IndexedDB来实现,它们可以与React一起使用。通过这种方式,数据存储在客户端的浏览器数据中。因为它需要在浏览器上进行额外的计算工作,对吗?这没有什么错,只要你不存储和处理 * 大量 * 数据,这有时会是一个问题。但是对于需要在不同用户之间共享的数据,或者需要在不同机器上的不同登录之间持久化的数据,只把“数据库”放在前端是行不通的--你需要把数据库放在后端。因此,如果需要这样一个持久数据库,它将需要在后端-如果你不设置后端逻辑,以额外的接口与后端数据库,数据库将基本上是自由开放的客户端操纵,这是一个相当糟糕的主意。
syqv5f0l2#
我可以在不设置Express服务器的情况下创建一个React应用并连接到Mongodb吗?你可能可以,但你不应该(除非只有你一个人会使用这个应用程序)。如果数据库直接暴露给前端,任何人都可以看到和更改任何内容,包括擦除数据库。
yacmzcpb3#
在使用react构建时,跳过后端是完全可以的,你不一定要使用expressJs为你的react App构建一个API。但是,您确实需要决定使用哪个数据库-像MongoDb和Firestore这样的noSequel Db最适合此用例。你肯定需要一个强大的状态管理库,比如Redux/ReduxToolkit。有了这些,你可以设置一个双向系统,在你的应用的状态和数据库之间进行有效和受管理的数据流,你可以根据某些事件从状态更新(同步)你的前端。
3条答案
按热度按时间bq9c1y661#
数据库必须存在于某个地方。
如果只有一个浏览器上的单个客户端需要能够访问他们的数据,这可以通过Local Storage或IndexedDB来实现,它们可以与React一起使用。通过这种方式,数据存储在客户端的浏览器数据中。
因为它需要在浏览器上进行额外的计算工作,对吗?
这没有什么错,只要你不存储和处理 * 大量 * 数据,这有时会是一个问题。
但是对于需要在不同用户之间共享的数据,或者需要在不同机器上的不同登录之间持久化的数据,只把“数据库”放在前端是行不通的--你需要把数据库放在后端。
因此,如果需要这样一个持久数据库,它将需要在后端-如果你不设置后端逻辑,以额外的接口与后端数据库,数据库将基本上是自由开放的客户端操纵,这是一个相当糟糕的主意。
syqv5f0l2#
我可以在不设置Express服务器的情况下创建一个React应用并连接到Mongodb吗?
你可能可以,但你不应该(除非只有你一个人会使用这个应用程序)。如果数据库直接暴露给前端,任何人都可以看到和更改任何内容,包括擦除数据库。
yacmzcpb3#
在使用react构建时,跳过后端是完全可以的,你不一定要使用expressJs为你的react App构建一个API。但是,您确实需要决定使用哪个数据库-像MongoDb和Firestore这样的noSequel Db最适合此用例。你肯定需要一个强大的状态管理库,比如Redux/ReduxToolkit。有了这些,你可以设置一个双向系统,在你的应用的状态和数据库之间进行有效和受管理的数据流,你可以根据某些事件从状态更新(同步)你的前端。