拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 在网页上显示NodeJS查询结果

在网页上显示NodeJS查询结果

白鹭 - 2022-01-23 2112 0 0

我有一个基本的 Web 应用程序,用户可以在其中上传图片。我可以列出这些图片的 URL,但我不知道如何在页面上显示它们。目前我正在使用 aform来执行获取请求,因为其他方法对我不起作用。

服务器端:

router.get('/pictures', async (req, res) => {
  try {
    let user = await User.find({ 
      name: req.query.name
    });
    let result = []
    user.map(user => {
      result.push(user.avatar)
    })
    res.json(result)
  } catch (error) {
    console.log(error)
  }
})

客户端:

  <form action="/pictures" method="get">
    <input type="text" name="name">
    <input type="submit" value="Get Images" name="submit">
  </form>

这是我回来的:

[
"https://res.cloudinary.com/fidohuncloud/image/upload/v1642794180/eyrfrf8orusaz2bnq7pj.jpg",
"https://res.cloudinary.com/fidohuncloud/image/upload/v1642795673/rrqsddzbjwtfkrm1vbco.jpg"
]

uj5u.com热心网友回复:

我上次处理表单提交已经有一段时间了。您可以使用一些 JS 框架(如 React 或 Angular)来非常快速地完成此操作。或者,如果您想操作 DOM,那么您可以实时添加它。

const images_from_client = [
  "https://res.cloudinary.com/fidohuncloud/image/upload/v1642794180/eyrfrf8orusaz2bnq7pj.jpg",
  "https://res.cloudinary.com/fidohuncloud/image/upload/v1642795673/rrqsddzbjwtfkrm1vbco.jpg"
];

images_from_client.forEach((img) => {
  const i_tag = document.createElement("img");
  i_tag.src = img;
  document.getElementById("app").appendChild(i_tag);
});
<!DOCTYPE html>
<html>

<head>
    <title>Parcel Sandbox</title>
    <meta charset="UTF-8" />
</head>

<body>
    <div id="app"></div>
</body>

</html>

uj5u.com热心网友回复:

如果您想使用 vanilla javascript,可以通过覆写默认表单行为来实作。

<!DOCTYPE html>
<html>

<head>
    <title>Form submission</title>
    <meta charset="UTF-8" />
</head>

<body>

  <form id="image-form">
    <input type="text" name="name">
    <input type="submit" value="Get Images" name="submit">
  </form>
  <div ></div>
</body>
</html>

您的 javascript 可以使用Fetch API向后端服务器发送 GET 请求并将影像附加到您的 HTML 中。

 document.getElementById("image-form").addEventListener("submit", function(e) {
    e.preventDefault();

    fetch("/pictures")
    .then(data => data.json())
    .then(data => {
      data.forEach(function(image) {
        let img = document.createElement("img");
        img.src = image;
        document.querySelector(".images").appendChild(img);
      });
    });
  });

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *