【发布时间】:2020-03-12 11:55:03
【问题描述】:
我正在使用 node、express、moongoDB 和 EJS 来制作一个带有自定义帖子管理系统的博客站点。这一切都很好,但我现在正在尝试使用 Cloudinary 从我的 mongoDB 上传的图像将多个图像添加到上传/编辑页面上的帖子中。从理论上讲,它的工作原理非常简单,因为我只需要将图像 ID 或 URL 附加到选定的帖子文档中。但是选择哪个帖子以及一页上的哪些图像让我很头疼。 我正在努力使用与此协调的前端 JS 和 EJS,因为需要在前端进行选择并通过 html 表单发布到后端,我假设使用包含我的图像选择的数组。 我的代码创建了一个名为 'imageSelection' 的数组来存储用户使用 JS 挑选的图像,然后它尝试将 JSON 字符串化并将数组 POST 到服务器进行处理。
我能够使用 JS 将图像保存在一个数组中,并使用 foreach 循环浏览我数据库中的图像以使用 EJS 显示选项。然后我只能弄清楚如何发布静态数据,但这并不能按照我需要的方式工作,因为我想在字符串化之后发布图像选择数组。我似乎无法使用纯 JS 将我存储在我的数组中的数据字符串化并发布到 vanilla JS 中,因为我需要调用一个函数,然后将数据插入到提交的值中。我不确定这是我的代码的唯一问题。
我有一个所选图像的预览,它应该显示,但我不能使用我以前的代码,因为它适用于 EJS,它需要使用纯 JS 才能访问我的“imageSelection”数组。
<form action="/post-add-imgs" method="post">
<div class="dropdown">
<button class="btn btn-primary" type="button" data-toggle="dropdown">Select a Post
<span class="caret"></span></button>
<ul class="dropdown-menu hover_img">
<% posts.forEach(function(post){ %>
<li><a href="#"><%=post.title%></a></li>
<% }); %>
</ul>
</div>
<div class="uploads-gallery">
<% images.forEach(function(image){ %>
<a href="#" onclick=" addImage(<%=image.url%>); "><img src="<%=image.url%>" alt="preview image"
height="100" /></a>
<% }); %>
</div>
<input type="hidden" name=" imageSelection " value="json.stringify(imageSelection);">
<button type="submit" name="button">Add image choice</button>
</form>
有没有办法使用 ejs 显示选定的图像,然后在 json.stringify 之后发布它们? 我需要使用 ajax 来完成这个吗?
感谢所有帮助和明智的话。
【问题讨论】:
标签: javascript node.js mongodb express ejs