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

如何无需重复执行node app.js即可刷新Node.js应用获取新图片?

解决方案

问题根源

你当前的代码在服务启动时仅调用一次API获取图片,之后/hent路由一直返回这张固定的图片,所以必须重启服务才能更新。

方案1:刷新页面换图(修改后端)

直接将API调用移到路由处理函数内部,让每次访问/hent都重新获取新图片:

// app.js 修改后
const Anime_Images = require("anime-images-api");
const API = new Anime_Images();

app.get("/hent", async function (req, res) {
  try {
    // 每次请求都调用API获取新图片
    let { image } = await API.nsfw.hentai();
    res.render("list", {
      Ejs: image,
    });
  } catch (error) {
    res.status(500).send("获取图片失败,请重试");
  }
});

修改后,刷新http://localhost:3000/hent页面即可看到新图片,无需重启服务。

方案2:按钮无刷新换图(前后端配合)

如果不想刷新页面,可通过前端按钮触发异步请求,后端新增接口返回图片URL:

1. 修改后端app.js,新增API接口

const Anime_Images = require("anime-images-api");
const API = new Anime_Images();

// 页面路由,首次加载返回图片
app.get("/hent", async function (req, res) {
  try {
    let { image } = await API.nsfw.hentai();
    res.render("list", {
      Ejs: image,
    });
  } catch (error) {
    res.status(500).send("获取图片失败,请重试");
  }
});

// 新增接口:仅返回图片URL的JSON数据
app.get("/api/hent", async function (req, res) {
  try {
    let { image } = await API.nsfw.hentai();
    res.json({ image });
  } catch (error) {
    res.status(500).json({ error: "获取图片失败" });
  }
});

2. 修改list.ejs,添加按钮和异步逻辑

<body>
    <img id="hentaiImg" src="<%=Ejs%>">
    <button id="refreshBtn">换一张</button>

    <script>
        const refreshBtn = document.getElementById('refreshBtn');
        const hentaiImg = document.getElementById('hentaiImg');

        refreshBtn.addEventListener('click', async () => {
            try {
                // 请求后端API获取新图片地址
                const response = await fetch('/api/hent');
                const data = await response.json();
                // 更新图片src
                hentaiImg.src = data.image;
            } catch (err) {
                alert('换图失败,请重试');
            }
        });
    </script>
</body>

现在点击页面上的「换一张」按钮,就能无刷新加载新图片,完全不需要重启服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 00:15:28