我有一个Node.js后端,可将图标图像发送到React前端。最初,我将此图像编码为Base64字符串,并将其直接存储在数据库中。我创建了一个api将此字符串返回到前端。但是,我读到将它存储在数据库中很不好,因此我重新编写了api将此字符串作为json文件存储在服务器中,现在我的api返回了此json文件的绝对路径。但是,React前端应该如何检索文件?是否可以使用绝对路径,还是必须创建另一个api返回文件对象?如果是这样,我该怎么做?
我是React和Node.js的新手,因此可以提供任何帮助。
编辑:我将文件路径存储为我的代码所在的__dirname +文件名。访问该URL时出现cors错误
使用Express这样来共享该文件夹。
假设您将文件保存files
在根目录下名为的文件夹中。并假设您的服务器结构大致如下所示:
- backend
- app.js
- frontend
- Components
- Routes
- public
- dev
- index.html (your template file)
- files
- myimage.png
在您的js根文件中(app.js?server.js?index.js?):
const app = express()
app.use('/static', express.static('public'));
app.use('/files', express.static('public/files'));
然后,在前端代码中:
<img src='/files/myimage.png' />
顺便说一句,在数据库中将图像存储为base64不会有问题...但是每个数据库备份也会备份这些图像。如果您的数据库很小,请不要担心。但是,如果您有很多图像,尤其是非常大的图像,这将使您的数据库(和备份)变得不必要地庞大和笨拙。
一切都取决于您的用例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句