将 JSON 数据库与 Node 和 React 一起使用

Posted

技术标签:

【中文标题】将 JSON 数据库与 Node 和 React 一起使用【英文标题】:Use JSON database with Node & React 【发布时间】:2018-12-23 20:26:57 【问题描述】:

我正在使用 Node.js 和 React 开发一个 Web 应用程序。

一个 JSON 文件用于存储文本数据和我使用的图片的存储库。它由 Node.js 修改,数据由 React 呈现。

我想知道使用 JSON 数据库的好习惯。 我可以将 JSON 文件存储在本地并在 src 文件夹之外使用 React 呈现它,还是应该将 JSON 文件存储在服务器(Node.js)上并通过请求在 React 上解析它?如何?

谢谢

【问题讨论】:

【参考方案1】:

从 Node v8.9.1 开始,您可以通过简单的 require 访问 JSON 文件。

var json = require('/location/of/file/file.json');

就位置而言,请将其粘贴在src 之外,因为它没有得到遵守。我倾向于将它放在名为config 的根文件夹中。

该文件应存储在服务器上,作为您从中获取数据的使用节点,其中可能存在敏感数据。

那么这一切都取决于您的情况,如果您的网络应用程序需要一个后端才能工作,并且它不仅仅是一个静态网络应用程序使用节点,如果它只是静态内容,只需将配置放入 UI (只要其中不包含任何敏感数据)。

【讨论】:

是的,我尝试了这个解决方案,但我使用了 create-react-app,它禁止从 src 文件夹外部导入...【参考方案2】:

我好像在制作一个静态应用程序(例如博客)。如果你在做服务器端渲染,你可以只需要你的 JSON 数据库,然后水合你的 DOM。否则,您可以公开 API 端点并请求 JSON 并让客户端 React 处理它。希望这可以帮助! ?

【讨论】:

不,我正在做一个动态应用程序。客户端能够修改数据并根据数据进行渲染。【参考方案3】:

您不应直接使用 JSON 文件来存储信息。

尝试使用一些专门为此而设计的 NoSql DB 技术,例如 MongoDB。您可以从 mlab.com 免费将其用作一项服务,以获取最多 500MB 的数据。

还有许多其他提供商,例如 mongodb.com/cloud/atlas,来自 MongoDB 的创建者。

【讨论】:

是的,我明白,但我需要尽快完成我的项目。您有使用 JSON 文件的解决方案吗? mongodb 入门真的很快。如果您改用 json 文件,则必须构建所有读写逻辑,这将花费大量时间。 MongoDB 的核心引擎中包含所有这些,您必须编写的命令非常简单。搜索“开始使用 mongodb 节点”之类的内容,您会找到一些直接的教程。在不到一天的时间里,你可以做你想做的事,我很确定。 在这里您可以找到一个非常简单的教程,展示如何使用 Mongoose 在节点中实现 MongoDB,Mongoose 是一个节点模块,用于操作原始 MongoDB 模块以简化节点:code.tutsplus.com/articles/… 好吧,我将尝试将 Mongo 用于 JSON 数据库。对于我需要存储的图片,我想我可以将它们直接存储在我的服务器上并发送给我的客户端,以发送 http 请求?谢谢 是的,您可以将其存储在您的服务器中,但您应该使用 aws-sdk 节点模块将其存储在像 Amazon S3 这样的 CDN 中。通过这样做,您将图像请求和数据传输委托给第三方服务器(来自亚马逊),并使您的节点服务器不占用 RAM/CPU 以专注于您的核心服务。此外,节点运行在单线程环境中,所有其他传入请求都不会被触发,直到所有正在进行的请求完成,包括图像传输。

以上是关于将 JSON 数据库与 Node 和 React 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

如何将 MongooseMap 转换为 JSON 对象以将其从 Node js 发送到 React?

Node/React 应用程序不会部署到 Heroku

为啥使用“npx create-react-app”命令创建项目时,除了“node_modules”和“package.json”之外没有任何文件和文件夹?

React:将嵌套的 json 数据与父数据合并以创建多个对象

react_app 项目开发 _后台服务器端-node

使用 create-react-app 和 node 设置 jest 多项目