node.js - 如何在 node.js 服务器的反应中显示图像
问题描述
我在 mongodb 中有一条记录,其中包含我想在前端显示的图像的文件名,即:react. 图片名称是mongodb中的portraits.jpg。
首先,我应该将路径名也保存到 mongo 中还是只保存图像名,即:/img/portraits.jpg vs portraits.jpg
其次,如何在 React 中显示图像?
我正在使用 axios 从数据库中获取数据,然后将数据发送到另一个组件:
const { categories } = this.props;
{categories.map(category => (
<Col md={6} className="mb-3" key={category._id}>
<Figure className="cat-photo">
<h1>{category.name}</h1>
<img src={category.catimg} className="img-fluid" />
</Figure>
</Col>
))}
当我在浏览器中查看源代码时,它正在查看,http://localhost:3000/img/portraits.jpg
但 node.js 服务器正在端口 8000 上运行。所以,我猜这就是为什么没有显示图像的原因,因为图像在服务器上并且无处可去在 React 文件结构中找到。
解决方案
首先,确保您的图像在节点服务器上实际上是可访问的(例如,访问http://localhost:8000/img/portraits.jpg)。
如果是,您只需将主机名添加到 URL。你可以像老派一样src={"http://localhost:8000" + category.catimg}
或用新的字符串替换来做,如下所示:
const { categories } = this.props;
{categories.map(category => (
<Col md={6} className="mb-3" key={category._id}>
<Figure className="cat-photo">
<h1>{category.name}</h1>
<img src={`http://localhost:8000${category.catimg}`} className="img-fluid" />
</Figure>
</Col>
))}
关于您的问题,是否应将整个路径存储到数据库中,这由您决定。这不是关于什么更好,而是什么更适合您的架构和用例。但是,恕我直言,这是一个非常次要且无关紧要的问题,无论如何都应该可以恢复。
推荐阅读
- python - 显示不出现
- pybliometrics - 如何修复 python pybliometrics.scopus.exception.Scopus401Error 中的错误?
- ios - 如何在 swift 中添加与 UIAlertController 的 textField 一起使用的“基本类型”?
- pyspark - Pyspark数据框中的多重过滤条件不等于条件
- reactjs - 将 UseRef 转换为 React Hooks
- javascript - react-native如何更改从其他页面获取的usestate数据?
- scala - 如何将 Future[Option[A]] 转换为 Future[A]
- dpdk - DEV_TX_OFFLOAD_VXLAN_TNL_TSO 卸载测试 - DPDK
- api - VueJS - 如何在同一组件中的另一个 API 调用中使用一个 API 调用的响应
- java-native-interface - JNI 类和接口命名