前端上传图片文件,koa后端如何存储到mongodb数据库中

最近打算写一个自己的博客,我在博客中想要上传图片

技术栈:

前端:react 
后端:koa mongodb

我现在是把图片转成base64传给后端,后端能接收到,也能直接存储带mongodb数据库中,但这好像不是最佳的办法。

当图片过多是可能就不能这样操作了,请问能不能把图片存在某个路径下的文件夹中,在数据库中只存储文件路径,具体应该使用到哪些插件辅助实现呢,还请大神指教

阅读 8.1k
4 个回答

这个原理比较简单,就是前端上传文件,node 接收文件,此时的 node 有两个选择

  • 把文件上传到自己的服务器,保存到 upload 文件夹下,此时就需要数据库保存这个文件的文件名和所在的文件目录,然后服务器把图片的路径,甭管是相对或者是绝对,保存到库里。
  • 服务器接收到文件之后,再把文件上传到云上,比如七牛云,阿里云等。但是这样就比较浪费,比如前端直接把资源传到云上,所以上传到云上之后,前端把云返回给的 url 作为参数传递给后端,后端把 url 保存到库里。

现在最好是使用云,不容易丢失资源,我用的是七牛云,给了 10G 的免费容量,差不多也够用了。

自己博客的话用图床好一点吧, 简单并且方便管理

图片使用过多的情况下,一般使用第三方云平台进行储存,比如七牛、阿里云等等,前端将视频上传云平台之后会得到一个访问地址,再将这个地址返回给后端储存就行,这样能大量减少后端服务器储存空间压力

推荐问题
宣传栏