node如何将本地图片变成网络URL

node如何将本地图片变成网络URL,再把URL传给前端啊?

用node和mongodb练手,希望前端在请求接口的时候调用接口去库里查数据,然后方法返回给前端,但是这里涉及图片,想问问大佬们,图片一般怎么存库啊。具体操作,越具体i越好。

阅读 5.3k
3 个回答

你是想用node和mongodb练手一个web服务项目,其中要完成本地图像在web中展示的问题?

如果是这样,有这样一些需要了解的知识

  1. node搭建web服务知识,主要是完成web监听、web请求解析等等,有一些 框架性开发基础,在其上开发可能更容易,比如express
  2. node原生或者express处理图片资源类型的能力(主要是展示),或者node配合实现图片展示服务
  3. node与数据库连接处理数据查询的能力

可能你已经处理好了1和3,需要明确2怎么处理,对此可能有几种情况

  1. 由node原生支持图片文件数据向客户端传输
  2. 由express来支持图片类静态资源服务
  3. 与外部图片静态资源服务配合,比如有专门的nginx配合进行静态资源服务

这里我们假定图片都是以单独文件路径的形式存储在node服务所在的文件系统中,且数据库中能查询到需要展示的图片本地路径,这时无论上面3种中的哪一种,都会涉及到客户端对图片请求地址的问题,这里假定可以对应同一个URI地址,这时客户端其实会请求这个新的URI,然后让服务器端处理,服务器可能基于上面不同的实现情况,就有不同的处理,比如1或者2,其实都是node服务自己处理,它会本地找到URI和本地数据的对应关系,本地读取这个文件内容,以数据响应的模式返回给客户端。如果是3,则由专门的如nginx来响应请求。

注意要完成你所谓的整个展示,其实是分成了

  1. node服务查询到图片信息,返回给客户端
  2. 客户端利用javascript技术,解析了图片信息,产生新的<img>标签请求,请求根据信息生成的图片URI
  3. 服务器端接收处理客户端传来的URI请求,根据不同的机制返回合适的数据
  4. 客户端接收数据进行呈现

这其实不仅仅是服务器端的事情!

这个其实还可以扩展,比如图片在服务端并不一定是文件存储,可能是对象存储,可能完整流程细节上又会发生变化啦。

但基本的流程原则还是融合进上面提到内容的。

你网页肯定是有地址的嘛,你存图片就是把图片上传到服务器,然后通过域名访问地址就行,mongodb里只需要存这个地址就行了

  1. 后端提供文件上传功能,将文件信息用一张表存起来(字段:文件id,名字,url,创建时间等)
  2. 后端提供根据文件ID获取图片详情的API。
  3. 业务需要文件的地方关联文件 ID 即可。
  4. 前端拿着文件ID 去换 URL,展示。

你可以再详细描述具体场景,其他同学才能更好的理解你的需求,给出解决方案。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏