You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在EJS中处理OMDb API返回的N/A海报图片?

解决OMDb API返回"N/A"海报时替换为自定义地址的方案

方案一:在EJS模板中直接判断处理

无需改动后端逻辑,直接在渲染海报时通过EJS三元表达式做判断,快速替换异常地址:

修改index.ejs中的img标签代码:

<img src="<%= movie.Poster === 'N/A' ? '/images/default-poster.jpg' : movie.Poster %>" alt="movie's poster" width="300px" height="450px">

说明:

  • 将/images/default-poster.jpg替换为你实际的自定义海报路径,确保文件放在项目public文件夹下(已配置express.static("public"),静态资源会从这里读取)
  • 该方式适合快速修改,逻辑直接体现在模板中

方案二:在后端Node.js中预处理数据

若希望模板逻辑更简洁,或后续有多处复用海报数据的场景,可在后端统一处理异常地址:

修改index.js中POST请求的处理逻辑,在获取到API返回结果后添加数据预处理:

// 原获取结果代码
const searchResult = data.Search;
// 新增海报地址替换逻辑
const first10movie = searchResult.map(movie => ({
  ...movie,
  Poster: movie.Poster === 'N/A' ? '/images/default-poster.jpg' : movie.Poster
}));
movies=first10movie;
res.redirect("/");

修改后,index.ejs中的img标签可保持原有写法不变,后端已完成所有异常地址的替换,模板无需额外判断。

注意事项:

  • 自定义海报路径需确保正确,例如文件放在public/images/default-poster.jpg时,路径写/images/default-poster.jpg即可
  • 两种方案任选其一,根据你的代码结构和需求选择更合适的方式

内容的提问来源于stack exchange,提问作者Atearos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 05:07:27